Copyright: AudioMulch Help ® 1997-2003  Ross Bencina
Citation: AudioMulch Help ® 1997-2003  Ross Bencina


Introduction

AudioMulch is an interactive musicians environment blending innovative and tradtional sound synthesis and processing techniques with an intuitive user interface derived from what would most commonly be referred to as an analog approach to electronic music. Through the creation of a network of AudioMulch contraptions (a 'patch') strung together by a series of virtual cables an external or internal sound source may be manipulated in real time to produce a myriad range of textures and effects. Unlike many other software effects systems AudioMulch has been designed for and is suited to live performance. It provides the opportunity for users to take computer music beyond the sphere of pre-recorded 'tape pieces' and into the world of interactive and improvisatory performance previously restricted to traditional and analog musicians. In doing so AudioMulch not only merges popular processing and synthesis techniques (Stereo Delay, Reverb, Flanger, Drum Machine, Bassline generator......) with those of academic computer music (Delay Line Granulation, Shepard Tones....) but brings together instrumentalists and computer musicians in a way that has been hitherto unavailable.

While many of the processes featured within AudioMulch are not new to computer music programs, it is their configuration within this software which is perhaps most notable. Controlled by on screen knobs and sliders or potentially by outboard and inboard midi controllers the parameter functions of AudioMulch contraptions can be manually adjusted in real time making AudioMulch as much a playable instrument as it is effects processing unit. It is not limited to this function however, and a jamming approach can just as easily be replaced by a pre-planned sequence using the automation feature. In addition to this performative focus recording can be achieved either directly to a sound file via the SoundOut contraption or also by recording the movements of individual parameters across time using the automation record function. This feature in particular allows the user to replicate rather than simply recording aspects of a live performance and in turn repeat a process at a later date, a procedure beyond the capacities of most working with analog technology.

Through the essentially unlimited (only by the power of the computer) combination of a network of synthesis and processing contraptions, AudioMulch allows the user to extend their current audio processing capabilities, create new music within their computer without additional expensive software or hardware systems, and participate in fluid performances with other computers or an ensemble of traditional instrumentalists.

Above all, AudioMulch is a musician's system.


System Requirements

AudioMulch is a 32 bit Windows application requiring either Windows95/98/Me or NT4.0/2000/XP (or later). To hear audio in real-time (that is what the program is designed for) you need a soundcard capable of delivering 16bit 44.1k stereo sound. To process audio from the soundcard input you will need a full-duplex soundcard i.e. one capable of simultaneous 16bit 44.1k stereo recording and playback. When used with multi-channel soundcards AudioMulch will support up to 24 channels of audio (ie, 12 inputs and 12 outputs). For information on supported file types and file related configuration please consult the Mulching with Sound Files section of this Help file.

It is suggested that a Pentium(R) class machine be adopted as the minimum system required to run AudioMulch. For serious usage however, a PentiumII or Celeron processor should be considered the minimum. MMX won't speed things up much but enhanced floating-point (Pentium Pro or Pentium II) will. It is important to note that the specifications outlined here are merely a starting point. As with most things involving computers, the greater the memory and processor power available to the software the higher the performance. This is particularly relevant to AudioMulch where machine performance can be directly linked to the number of contraptions that will function at once. The faster the machine, the more you can do in real-time.

Most AudioMulch parameters can be modulated via MIDI, AudioMulch can also be syncronised to an external MIDI clock source. To utilise these features a MIDI interface and an external MIDI control device is required. Alternately AudioMulch can be controlled by other MIDI software by using a MIDI loopback driver.


DLGranulator

Category: Effects

Inputs: mono

Outputs: left, right

DLGranulator is an implementation of a delay line granulator. A delay line granulator samples small sonic fragments (typically < 100ms) from a delay line, and reassembles them into a stream of enveloped "grains".  Granulators are useful for generating dense textures, pitch shifting and other audio mulching tasks. A "grain" refers to a single sampled fragment with an envelope applied to it. Each grain has parameters that determine how the grain is sampled from the delay line and how it is enveloped and panned. The interonset time parameter (IOT) determines the time between the start of one grain and the start of the next in the output stream. Other parameters control input, output, feedback and wet/dry mix levels. Many parameters make use of range sliders (see Using Contraption Controls) to specify a range of values; in such cases each grain is assigned a random value from within the specified range.

Parameters

InGain - Input Gain

Specifies the amount the input signal is scaled before it is granulated.

Amp - Grain Amplitudes

Specifies the range of possible amplitudes available for each grain.

Pan - Grain Pans

Specifies the range of possible stereo panning locations available for each grain.

Delay - Grain Sampling Delay

Specifies the range of possible sampling delays times available for each grain. Each grain is individually sampled from the delay line. If the minimum and maximum values of Delay are the same, the output will be a granulated version of the input signal, delayed by the amount specified. If the minimum and maximum values of Delay specify a range, this will have the effect of time smearing the input signal (each grain will select a random delay time from within the specified range). Delay ranges from 0 to 9.5 seconds.

Freeze - Delay line freeze

Freeze will pause input to the delay line. This allows the delay line to be statically sampled for time freezing effects.

Feed - Feedback

Specifies how much of the granulated output is fed back into the delay line input. This can be used to create arpeggiating effects when the transposition factor is not unity.

Mix - Wet / dry mix

Specifies the ratio between granulated and input sound presented at the output.

Trans - transposition factor

Specifies the range of possible transposition factors available for each grain. The notch marks unity, the slider has a range of +/- 2 octaves.  Transposition factor effects the rate at which each grain is played back. Positive transposition factors will have the effect of shifting the output higher in pitch while negative factors will lower the pitch of the output.

IOT - interonset time

Grains are mixed into the output stream in an overlapping sequence, interonset time determines the time from the beginning of one grain to the beginning of the next. If the grain duration (GDur) is less than the interonset time, a particled texture will result. When grain durations exceed interonset time, grains will overlap making it possible to create smooth textures. Interonset time ranges from 5ms to 2 seconds.

Max Grains - Limit maximum simultaneous grains

Due to the limited processing power of computers it is not realistic to mix an infinite number of overlapping grains in real time. The maximum allowed with DLGranulator is 20, this may be too many for slower systems to mix in real time. Max Grains is provided to avoid audio glitches on slower machines. Lowering Max Grains will lower the CPU load but will thin out granulations using a lot of overlapping grains.

Quant  quantization amount and quantization grid

When the clock is running, DLGranulator allows the onset times of all grains to be quantized.  The slider allows the amount of quantization to be set, ranging from none (minimum) to total (maximum). The combo box allows selection froms a variety of quantization pulses. Quantization is only active when the clock is running.

GDur - Grain Duration

Specifies the range of possible durations available for each grain. Gdur can range from 10 to 500 milliseconds.

Shape - Envelope shape

Each grain has an amplitude envelope consisting of an attack, sustain and decay portion. TrapFact determines the duration of the sustain portion relative to the duration of the attack and decay portions. When shape is 0, the envelope is a triangle, when it is 1 the envelope is a rectangle.

Skew - Envelope Skew

Specifies the range of possible envelope skew factors available for each grain. Skew adjusts the relative duration of the attack and decay portions of the grain envelope. Smaller values of skew lessen the attack time and increase the decay time, larger values of skew lessen the decay time and increase the attack time. Both extremas of skew are useful for creating more interesting grain profiles when longer grain durations are being used.


RissetFilters

Category: Filters

Inputs: mono

Outputs: mono

RissetFilters is based on the same principal as the RissetTones contraption, implementing a variation of the acoustic illusion originally developed by Roger Shepard and Jean-Claude Risset. RissetFilters uses a bank of bandpass filters in place of the oscillator bank used in RissetTones. As the center frequencies of the bandpass filters are evenly spaced a kind of comb filter is created. The resultant effect of RissetFilters is similar to a flanger or phaser except that instead of sweeping up and down the filters sound as if they are always sweeping in one direction.

The idea for a Risset filter bank was introduced to the author by Steve Adam who designed the effect for use in his composition Chromophony.

Parameters

Rate

The Rate slider can be shifted anywhere between -5 and 5 Hz. It controls both the speed and direction of the center frequencies of each filter in the filter bank. At 0 Hz (the default position) the filter center frequencies are stationary. Negative Rate values produce a continually descending filter sweep, positive values produce a continually ascending filter sweep.

Spacing

Spacing defines the distance between the center frequencies of each successive bandpass filter. The larger the Spacing setting, the lower the number of filters required to implement the effect (and hence the less CPU load required.)

Range

The Range slider defines the upper and lower limits of the bell shaped frequency versus amplitude envelope applied to each filter band. The wider the Range setting, the higher the number of filters required to implement the effect.

Max Filts - Maximum Number of Filters

The Max Filts setting box defines the maximum number of filters utilised within the filter bank. A figure equal to that of the recommended value (found to the right of the text box) will ensure that the illusion is maintained. A higher setting will have no effect while a lower setting will result in irregularities and gaps in the filter bank.

Q - Resonance

The Q parameter determines the ratio of filter bandwidth to frequency. Higher values of Q lead to narrower filter bands, which can sound more prominent and tone like. Higher Q values also leads to less of the input signal being passed by the filters which may lead to low output levels  this can be corrected by using a Gain contraption.


Invert

Category: Mixers

Inputs: mono

Outputs: mono

Invert is a simple contraption that inverts the polarity of its input signal - this is sometimes referred to as phase inversion or a 180 degree phase shift. A simple pseudo stereo effect may be created by panning a mono signal to one speaker and an inverted version to the other speaker. Invert may also be useful for implementing some phase related encoding and decoding schemes.


M*Buss

Category: Busses

Inputs: 1 (mono), 2 (mono), . . .

Outputs: left, right

M*Busses (where * indicates the number of inputs), are mono summing busses. No property editor is provided for M*Busses. All signals are mixed to the output with unity gain.


S*Buss

Category: Busses

Inputs: 1 (left), 2 (right), 3 (left), 4 (right), . . .

Outputs: left, right

S*Busses (where * indicates the number of stereo input pairs), are stereo summing busses. No property editor is provided for S*Busses. All signals are mixed to the output with unity gain. Mono signals applied to either input of a stereo pair are automatically bridged to the other input of that pair.


Overview of AudioMulch Tutorials

( Tutorials Under Construction )

As has been suggested above, the use and application of AudioMulch can be limited only by the technical attributes of your machine and the depth and scope of your own imagination. One cannot however imagine the result of a complex network of sound synthesis and processing contraptions if there does not exist a reasonable understanding of the varied capabilities and combined potentials of the program itself. So far this help file has introduced you in some detail to the workings of the individual contraptions (Contraption reference) and has provided opportunities to experience the basic capabilities of the software (example files). The following section, focuses more on the specific knowledge required to perform a number of task and genre based operations.

Designed as a computer music tool, AudioMulch lends itself to both unusual and what for the lack of a better expression we will refer to here as commercial uses. It can be used in live performance situations or as processing tool for the composition of recorded pieces. The following sub-sections offer a range of these applications; from basic use to specific genre based workshops. Importantly however, AudioMulch applies no limits to the combination of its many parts, so there are also several sections included here which focus on particular contraptions. Finally, it should be said that these tutorials by no means provide an exhaustive account of the many uses of the software and it would be just as relevant to provide Big Beats or Vocal/Instrument processing workshops here  maybe later!


Registering AudioMulch

AudioMulch was conceived to assist in both computer music education and creative music making using computers.  For this reason unregistered versions of AudioMulch have not been crippled or restricted.

However, this project has absorbed almost five years of development time, and we would ask that those of you who have the means (especially those using the software for commercial applications) please purchase a shareware license. A single-user AudioMulch license may be purchased for US$50 that will register the programs future releases up to but not including version 2.0. Upon receipt of payment a registration code will be supplied which disables shareware warning messages and beta version expiry. In doing so you will also ensure the future the development of the software.

To register AudioMulch choose Register AudioMulch from the Help menu. A wizard will guide you through the registration process. You can also register by credit card online via the AudioMulch web site.

All transactions with regard to AudioMulch registration fees will be handled by Kagi. Kagi is an Internet store specializing in products created by thousands of individuals around the globe. Kagi started with downloadable software and has since become a seller of all sorts of other products such as music, videos and other physical goods. Kagi makes it easy for people to pay for products securely and frees the seller from handling all the payment processing. You can find out more about Kagi at their web site: http://www.kagi.com/

If you have not yet registered AudioMulch through Kagi, the Kagi Register program will take your details and provide you with a number of convenient Credit card payment options. Upon receipt of your order Kagi will forward your registration number.

Importantly any queries should be directed to rossb@audiomulch.com and not to Kagi.

Australian residents may pay by cheque or money order by contacting the author directly (rossb@audiomulch.com).

Please consult the AudioMulch web site (http://www.audiomulch.com/) at the time of registration for any alterations to current registration policy.


What`s New In This Version

AudioMulch version 0.9b12

AudioMulch version 0.9b12 includes a new Document Switcher window which supports switching between up to 128 amh documents under MIDI control. A new Frosscader contraption allows a stereo signal to be faded between two separate stereo outputs allowing the signal to be smoothly faded between multiple signal paths.

This release incorporates a number of significant bug fixes including improved support for some ASIO drivers, fixed "Save as copy with sound files" functionality, fixed VST Bank file saving, and better support for systems using large DPI font settings.

Click here to view a full history of changes for this and all previous versions of AudioMulch.


Overview

AudioMulch is an interactive music studio that allows its user to create myriad environments for the synthesis, processing, and assembly of musical components or sounds. The combination of integrated synthesizers and control mechanisms (contraptions) that make up AudioMulch facilitate the transformation of sound to create sonic textures beyond those traditionally associated with instrumental music. Importantly however, AudioMulch maintains the potential for Real-Time performance, a feature lacking in much of what has up to now been described as computer music or sonic art. Based on the notion of controllable sonic flow, AudioMulch passes externally created sources or internally synthesised textures through a range of sound creating and editing components (Mulching contraptions), many of which have played a prominent role in the repertoire of 20th century music technology. By altering the paths of these input sources and interchanging contraptions the sonic composition of any piece may be transformed in a process which is perhaps best described as designing sound. AudioMulch is not however limited to the creation of soundscapes and has just as many applications as an effects processor or as an instrument in its own right within more commercial musical genres. Easily combined with live performers in an interactive context or used to create a range of popular electronic musical styles, the depth and range of AudioMulchs features mean that creation is only limited by the power of your machine and the scope of your imagination.

Organised within a series of sub-menu groupings, AudioMulchs contraptions can be generally categorised under the sub-headings Signal Generators, Effects, and Filters. In addition to these central features there are a number of contraptions devoted to the channeling of sound into, through, and out of the Patch (Input/Output, Mixers, Busses...). Sound can be drawn through a direct line into the sound card, such as a microphone input, or can be replayed internally from sound files for further processing. As the software works in Real-Time the sonic output can be heard directly or can be saved to a sound file to be replayed later. The use of AudioMulch is not however limited to live improvisation as the incorporation of an internal system of automation controls makes pre-planned compositions possible.

Input/Output

Not surprisingly, this category of AudioMulch contraptions is responsible for controlling the flow of sound into and out of the program. Most common perhaps is the SoundOut contraption which is the primary channel of sound out of AudioMulch. These contraptions allow the user to process pre-recorded sound files in real-time (SoundIn), direct multiple channels or live audio through AudioMulch for simultaneous processing (AuxIn/AuxOut), or even record the output of a live improv session to a sound file (SoundOut).

Signal Generators

AudioMulch also includes a range of contraptions focussed mainly on the creation of sound. Examples include LoopPlayer, devoted to the importing of sound as WAVs, and Bassline and Drums, contraptions commonly associated with popular electronica and earlier analog and sampling technologies. In addition to these basic contraptions many other more complex synthesisers also exist (eg, Arpeggiator & BubbleBlower). As a result of these inclusions music can be composed using entirely computer based input, whether it be from files stored on the computers hard disk or from sounds synthesised entirely within AudioMulch.

Effects and Filters

To complement its Signal Generators, AudioMulch provides a large number of Effects and Filter contraptions that may be used to transform and shape the input signal. Some of these, like SDelay, NastyReverb and Phaser, will be recognised as common effects utilised both in the studio and on stage. Others like 5Combs and DLGranulator allow easy access to computer music techniques previously limited to the creation of recorded pieces. Offering Real-Time processing, AudioMulch opens up these technologies to a new level of use and offers non-experts the chance to play in new ways with sound and music. The range of processes available is not however limited to those found within these categories as the software also supports the industry standard VST (Virtual Studio Technology) and VST2 plugin formats giving AudioMulch users access to a large number of third-party processes and synthesis tools.

Control

Parameter control through both external MIDI sources and an internal system of automation ensures that AudioMulch is not confined to real-time Mouse and Keyboard operation and can grow beyond the traditional PC setup. Automation allows for the hands-free and pre-planned control of many Mulching contraption parameters across the period of an entire piece or simply a small looped section of mulching. It facilitates the consistent regulation of individual parameters while not restricting the random manual manipulation of others. Unlike some mainstream multitrack editing platforms, AudioMulch's Automation creates the ability to not only mix levels of both instrument and effect channels but to plan the evolution of those effects' and signal generators' more specific parameter controls across an extended period of time. In this way, an entire track could be composed, performed, produced, and recorded using a single AudioMulch Patch.

While not every one of the features offered by AudioMulch are new, the softwares innovative composition broadens the potential use of computers within all forms of music and opens the door to a new way of thinking about sound. Its simply a case of keeping and open mind and letting your ears explore.

The next section, Navigating the User Interface, will hopefully set you on your way.


Guide To The Example Files

A number of example documents demonstrating different aspects of AudioMulchs application are provided within the Examples directory. A particularly good starting point for experimentation with AudioMulch, the examples offer simple contraption networks for you to practice on. By moving the knobs and sliders each of the individual contraption parameters can be changed - thereby allowing the user to experience the real-time sonic results of different modifications. The example documents also allow you to connect new contraptions or dismantle each document to examine its individual parts. Each example file is described below.

In order to hear any of these examples press the enable audio button on the toolbar or select enable audio from the control menu. Some examples require the clock to be running  this can be achieved by pressing the play button on the toolbar or selecting play from the control menu.

Although these examples mainly demonstrate the capabilities of AudioMulch to synthesize sounds they could be easily modified to take their input from a soundfile using SoundIn and used to process and transform other recorded sound sources.

Arpeggiator

The Arpeggiator example as you may reasonably expect demonstrates the Arpeggiator contraption. Importantly however, it also provides a context in which a Bassline contraption may be employed as a filter rather than a signal generator.

HappyPenguins

HappyPenguins also provides an example of the possible uses of the Arpeggiator. Its primary aim however, is to demonstrate the use of the SouthPole filter. Through a sequence of automated changes the patch produces a range of the effects made possible by SouthPole. The inclusion of this automation sequence also allows the user to experiment with the concept of parameter automation.

Harmonics

The harmonics example consists of the following serial chain of contraptions: 10Harmonics->Flanger->DLGranulator->SDelay. You can read more about the individual contraptions by following the links.

This document used a 10Harmonics contraption to generate a vocal like tone as a source for sound processing. This tone is then fed though a flanger that slowly sweeps up and down, accentuating the harmonic series of 10Harmonics output as it goes. This signal is fed into a DLGranulator (delay line granulator) which breaks it up into individual events (grains) each transposed down about an octave (using the Trans parameter) and each drawn from the source with a random delay. If the delay parameter were not set across a range, the harmonics of the event would follow the contour of the flanger (try this by setting both thumbs of the delay parameter to minimum) but instead each event has a randomized harmonic colouration. The DLGranulators output is fed into a SDelay (stereo delay line) to create a rhythmic delay effect.

HarpoonedFeedback

Based on a patch created by Warren Burt, HarpoonedFeedback demonstrates feedback using a TestGen and a Flanger. The TestGen sends white noise to the Flanger which is then taken from the Flanger output to a SoundOut via two MGains. A channel is then taken from the Flanger output and fed back into the input via MGain1. MGain1 controls the amount of signal fed back into the Flanger (feedback) while MGain2 and MGain3 provide necessary control over the loops final output. By varying the MGain levels you can experiment with the effects of feedback to create an unusual non-linear effect.

Pulsar

This patch demonstrates one use of the PulseComb hybrid pulsar filter. Here it is applied to filtering a simple drum pattern. The automation sequence was recorded to demonstrate a variety of possible PulseComb effects.

SimpleSpat

The SimpleSpat document demonstrates the use of the Sspat (Stereo Spatialiser) contraption. A signal (in this case white noise filtered into a coloured band using MparaEQ fed into Sspat may be processed to create the effect of a sound passing though space. SSpat has a separate reverb send output that may be used to increase the depth of sounds as they move away from the listener  in this case the reverb send output is fed into the NastyReverb reverb unit. The mixer (S4Mixer_1  a four stereo input mixer) may be used to adjust the relative levels of the different signals, or to isolate different signals (try listening just to the filtered noise before it enters sspat by turning down all mixer channels except 3&4).

Technoid

Technoid demonstrates one simple way of making techno music with AudioMulch. A Bassline is fed through a stereo delay line configured to create rhythmic delays, the delay output is mixed with the output of a Drums drum machine using a stereo buss. The balance between the Drums and Bassline may be varied using each contraptions volume control.

Trance1

Trance1 is another techno example, this time utilising two basslines  one processed with a stereo delay, and another using a flanger.

TechnoAutomation

A third techno example, TechnoAutomation draws on the patch arrangements of Technoid and Trance1 to demonstrate some possible uses of Automation within AudioMulch. Within the patch's Automation pane it is possible to view examples of automation being used to control Single value parameters (Bassline LFO Depth, Flanger feedback...), Range parameters (Flanger frequency range), Mutes (individual Drums channels), and Presets(Bassline patterns).

Worth noting is the automation of the Flanger range. When the automation range is zero the automation channel is able to sweep the Flanger, effectively overiding the Flanger's built in LFO.


Overview of AudioMulch Contraption
Overview of AudioMulch Contraptions

The Mulching Contraptions fall broadly into six categories that are reflected in the context menu in the Patcher pane:

•	Input/Output contains contraptions that control sound output and sound input.

•	SignalGenerators are contraptions that generate a sound that can be further processed by other contraptions.

•	Effects are contraptions that process the audio signals from other contraptions.

•	Filters fulfil a similar role to effects in that they process signals from other contraptions.

•	Busses are contraptions that allow multiple input signals to be sent to a single output or a stereo pair.

•	Mixers are similar to busses except that they have individual volume controls for each input pair.

•	Beta contains new and developmental contraptions that, as a result, may not be completely bug free. The Beta section features a range of contraptions that would otherwise be placed in one of the above categories.

•	VST Plugins contains external modules compatible with the Virtual Studio Technology features of certain other sound processing and sequencing software alternatives. All VST-compatible modules, once plugged-in, will appear within this category of the context menu.

Double clicking on the contraption within the patcher pane will open the contraptions user interface or properties editor (Note: this can also be acheived by right-clicking on the contraption within the Patcher pane and selecting Edit from the pop-up menu). This editor will appear as a window within the Properties pane. Adjusting the parameter controls within each window will alter the composition of the sound output. Each properties window is headed by a title bar featuring the name of the contraption and three small icons. The question mark (?) when clicked provides access to the section of this Help file directly relating to that particular contraption. The Contraption reference can be found in its entirety in the following sections. To the left of the help button is the Preset button. A complete explanation of contraption preset settings can also be found in a following section. Finally, the cross to the right of the Help button will hide the contraptions property editor. Unlike other Windows applications the cross (X) does not delete the contraption it merely hides its editor. To reveal a property editor double click on the contraption in the patcher pane. The window will reappear with its settings intact. A contraption will only be removed from the document if it is deleted in the patcher pane.

Right-clicking on a contraption's user interface within the Properties pane reveals a context menu allowing direct access to settings relating to Parameter values, Parameter modulation, allocation of MIDI controllers and Automation.

Each of these menu items is explained in further detail within the relevant sections of this help file. Set Value..., Parameter Modulation..., Quick-map MIDI Controller..., & Automate....

Renaming AudioMulch Contraptions

AudioMulch also supports the renaming of contraptions, facilitating quick and easy identification of multiple instances within a single Mulch patch. This can be achieved by right-clicking on a contraption in the patcher pane and selecting Rename from the pop-up menu. The Rename Contraption dialog will appear displaying the type of contraption selected and its current name in an editable text box. At this point edited names containing only letters (upper and lower case characters are allowed), numbers, and underscores are supported. Clicking OK will then apply the name change to every displayed feature of the contraption in the Patcher, Properties, and Automation panes, and also the Parameter Modulation dialog. While these renamings can be saved like any other parameter change it is important to note that name changes are both instance and document specific and will not effect the default naming of additional contraptions.


Using Common Contraption Controls

Knob

Knobs are used to control a single parameter value. To change the value of the knob click and drag the pointer up and down on the control - dragging upwards increases the value, and dragging downward decreases the value. This same method is also applicable to increment/decrement control arrows, such as those found on SDelays Delay time editor.

Slider

Sliders are used to control a single parameter value; they appear in both horizontal and vertical orientations. To change the value of the slider click and drag the pointer on the control; up and down for vertical sliders, left and right for horizontal sliders. Vertical sliders have the minimum value at the bottom and the maximum value at the top while horizontal sliders have the minimum value at the left and the maximum at the right.

Range Slider

Range Sliders function similarly to Sliders except they are used to control the minimum and maximum of a range of values. When you click and drag on an empty space within a Range Slider both the minimum and maximum thumbs are moved simultaneously in the same direction. To move the minimum and maximum values independently you simply need to click the pointer directly over the desired slider thumb.

To enhance the manipulation of the Range Slider in a live performance context alternative control modifiers have been provided and are described below.

Holding down the shift key while click-dragging on empty space will move only the maximum thumb while holding down the alt key while dragging will move only the minimum thumb. When both shift and alt keys are held down simultaneously the minimum and maximum thumbs move in opposite directions. This last modifier key combination has the same function whether you click-drag over empty space within the Range Slider or on one of the slider thumbs. This can not be said for the two preceding it. When you click-drag on one of the slider thumbs while holding down the shift key both the minimum and maximum thumbs are moved simultaneously in the same direction. When holding down the alt key the thumb that you have not clicked on will be moved. The table below provides a quick visual reference of the modifier key combinations explained above.

The modifier key combinations explained above allow for rapid movement between slider thumbs without multiple mouse clicks. For live editing this facilitates the execution of the entire variety of Range parameter controls by altering modifier keys, a feature most applicable to performance or realtime interaction with a signal source. The selected slider thumb or thumbs are highlighted.

Important Note

To make fine adjustments to parameters or values hold down the control key when you click and drag the pointer over either the knobs or sliders. This will slow down the movement of the individual controls allowing more exact values to be achieved. To make exact alterations to parameters or range values right-click on the parameter in question and select Set Value... from the pop-up menu. The Set Value dialog box will appear, allowing you to fill in the field with the desired parameter value. To quickly view the exact value of any parameter within the Properties pane simply roll over it with the mouse and hold down the left-click to reveal a pop-up value display. This display will also appear whenever you edit a parameter.


Using Contraption Presets

Each Mulching Contraption may have up to 20 presets associated with it.  A preset is a snapshot of all parameter settings for a single contraption.  Presets allow you to store and recall multiple configurations - like drum patterns or filter settings.

Presets are accessed from the presets button positioned next to the help button of each Contraption's property editor window. Clicking on this rollover button will display a popup menu showing 20 presets. The enabled items in the presets menu contain previously stored settings.  To restore a previously stored preset select it using the left mouse button. To create a new preset, right click on the preset number you wish to store to and select Store from the popup menu.  Presets can be cleared by right clicking on the desired preset and selecting Clear from the popup menu.

When using a contraption the presets button indicates the current preset, whenever you edit a Contraption parameter the preset button will display '--' indicating that no preset is currently active.  Presets are only stored by explicitly storing them using the presets menu.

While it is possible to store presets for many VST and VST2 Plugins using the Mulching Contraption Presets, AudioMulch also supports the VST fxb preset file format. For further information regarding this functionality please consult the VST Plugins page of the Mulching Contraption Reference.


SoundIn

Category: Input/Output

Inputs: none

Outputs: left, right

The SoundIn contraption is the primary source of incoming sound within many AudioMulch documents.  In particular it lends itself to real-time processing of both external elements (i.e., live instrumental performances channeled through the soundcard audio input) and extended pre-recorded sound segments, in the form of wave or aiff files.  While any AudioMulch document is unable to support more than a single SoundIn contraption, the Use Input File checkbox allows the user to switch between the soundcard audio input and an input sound file.

When using the soundcard audio input (Use Input File checkbox clear), Audio Input must be started using the Controls->Enable Audio menu item or the speaker button on the toolbar. When using a sound file, input is controlled using the Play/ Stop button on the SoundIn properties editor.

The remaining controls for SoundIn are described below;

File

When Use Input File is enabled, the file panel indicates the source sound file for SoundIn. Files may be selected by clicking on the open button in the file panel.  For information on supported file types and file related configuration please consult the Mulching with Sound Files section of this Help file.

File position Trackbar

The file position trackbar can be used to select the current playback position from the input file. It can be used while a file is playing or when a file is paused.

Auto Rewind

When checked, Auto Rewind causes the input file to be rewound to the beginning each time it is played.

Loop

When checked, Loop causes the input file to be played continuously, beginning from the start when the end has been reached.

Delay

When Loop is enabled, Delay controls the length of silence inserted between the end and the start of the input file as it is looped.

Play/Stop Button

The Play / Stop button starts and stops playback of the input file.


SoundOut

Category: Input/Output

Inputs: left, right

Outputs: none

The SoundOut contraption is the primary channel for outgoing sound in an AudioMulch document.  Contraptions connected to the SoundOut will be heard from the soundcard output.  Real-time audio is only generated when the Audio Output is active, this can be achieved using the Controls->Enable Audio menu item or by using the speaker button on the toolbar.

The SoundOut contraption also allows the output sound to be simultaneously recorded to a sound file.  The controls for recording a sound file with the SoundOut contraption are described below.

File

The file panel indicates the sound file that SoundOut records to. Files may be selected by clicking on the open button next to the file panel. New files may be created, or existing files selected.

Record Mode

Record Mode determines whether any existing sound in the selected output file is overwritten or appended in subsequent record operations. Append would be useful for accumulating multiple takes for later editing while overwrite will destroy any existing sound in the file.

Punch Mode

Punch Mode is used to determine when to start and stop recording. In manual mode, recording begins when the record button is pressed and stops when the stop button is pressed. In SoundIn Sync mode, recording begins when the SoundIn is started and stops when the SoundIn stops, or when the stop button is pressed. This mode may be useful for producing a processed version of an existing sound file. Timed mode begins recording when the record button is pressed and continues for the time specified or until the stop button is pressed, whichever comes first.

Record / Stop Button

The Record / Stop button controls the commencement and termination of recording to the output sound file.

Play / Stop Button

The Play / Stop button allows the output sound file to be auditioned. The file is always played from the beginning.

Note: when working with a static mulch patch or a looped automation sequence another option may be to use Export to Sound File from the File menu to make recordings of a pre-determined length. This is especially useful when trying to create your own loops.


AuxIn/AuxOut

Category: Inputs/Outputs

Inputs: left, right (only on AuxOut)

Outputs: left, right (only on AuxIn)

AuxIn and AuxOut are a group of input and output contraptions provided for those users running multi-channel soundcards. Using these contraptions, separate channels within AudioMulch can be assigned to specific channels of the soundcard. While designed for use with multichannel soundcards it's worth noting that these contraptions may also come in handy when working with a much more basic setup. For example, when using the SoundIn contraption to play a sound file from the hard disk an AuxIn contraption may be used to channel audio into AudioMulch via your soundcard's microphone or line input.

Unlike SoundIn and SoundOut however, AuxIn and AuxOut contraptions have no property editor so all settings must be adjusted within the AudioMulch Settings dialog box. This can be accessed through the Edit menu.

A full explanation of this procedure can be found within the Settings Dialog section of the User Reference chapter.


TestGen

Category: Signal Generators

Inputs: none

Outputs: mono

TestGen is a simple sine tone and white noise generator.  The output may be switched between these two using the radio buttons.  Particularly helpful when exploring the myriad textures produced by a variety of alternate contraption chains, TestGens ability to generate sine waves of varying frequency provides a reasonable exploratory field in which to assess the effect of most contraptions on a range of more complex sounds. The frequency of the sine wave can be typed directly into the field provided or swept up and down with the mouse by clicking and dragging on the up/down button to the right of the field.  The accepted frequency range is 20 to 20000 Hz.

The use of TestGen is not however restricted to the process of familiarisation. For example: the noise source may be used on its own or mixed with other sounds prior to filtering as a means of thickening or making more noticeable any filtered effects.


Drums

Category: Signal Generators

Inputs: none

Outputs: mono

Drums is a clock synchronised drum machine which uses sound files as sound sources. Five samples may be loaded at once, each with its own volume, mute and two bar sixteenth note sequencer. Channels 1 and 2 may be gated against each other for 'closed gates open' high-hat sequencing.  Drums will not output any sound if the clock is not running.

Parameters

Volumes

The leftmost volume knob controls the overall output volume of Drums, the subsequent numbered knobs individually control the gain of each drum channel.

Gate 1 & 2

When checked, Gate 1 & 2 prevents both drum channels 1 and 2 from being heard simultaneously.  If channels 1 and 2 both have a note sequenced on the same pulse, channel 1 is heard. This is primarily intended for creating the effect of a closed high-hat terminating the ringing of an open high-hat. Typically the closed hat sound would be placed in drum channel 1 and the open hat sound in drum channel 2.

Mute and Channel Enable checkboxes

The checkbox labeled Mute, controls muting of Drums as a whole, while the checkboxes at the left of each drum channel can be used to enable or disable each channel individually. In all cases muting begins or ends at the beginning of the next bar.

Drum Channels

The lower part of the Drums editor is populated by five rows of identical controls. Each row pertains to drum channel, the number of which is indicated at the left of each row.

Next to the channel number is a channel enable checkbox (described above), following that is the sound file selector / indicator.  This button indicates the current sound file being used for that channel, it may be pressed to load a different sound file.  The sound file selector / indicator displays "[empty]" when no file has been selected, an exclamation mark (!) next to the file name indicates that the file does not exist. For information on supported file types and file related configuration please consult the Mulching with Sound Files section of this Help file.

Following the sound file selector / indicator is a sequence grid representing two bars of semiquavers. Beat numbers are indicated across the top of the grid.  Sequence grid cells containing a black rectangle (on) indicate that that channel will be triggered at that semiquaver position.

NOTE: For Drums to make any sound at all, at least one channel must have a sound file loaded, be enabled, have its volume turned up and have some pattern entered in the sequence grid. The master volume must be turned up, the master mute unchecked and the clock running.


Bassline

Category: Signal Generators

Inputs: optional input

Outputs: mono

Bassline is a simulation of an analog monophonic synthesiser with a 16-note pattern sequencer. Bassline synchronises to the clock, which must be running for Bassline to make any sound.

Bassline also provides an audio input that can be used to feed any audio signal through its filter and envelope. When the audio input is used it replaces Basslines internal oscillator, as a result neither waveform select or the pitch cells of the Sequence Grid will have any effect on sound.

Parameters

Mute

When checked Mute disables sound output.

Sawtooth / Square waveform select

The waveform selector buttons allow the selection of either a sawtooth or squarewave oscillator.

Volume

Volume controls the output level of Bassline.

Cutoff

Cutoff controls the cutoff frequency of the resonant filter.

Resonance

Resonance controls the resonance of the filter.

Env mod

Env mod (Envelope modulation) controls the amount by which the AR envelope modulates the filter cutoff frequency.

Accent

Accent controls the depth of accent applied to those notes accented in the sequence grid. Accenting is created by a combination of increased note amplitude and filter cutoff.

Decay

Decay controls the release length of the envelope Higher values yield longer delays which is often perceived as a higher filter cutoff frequency.

Overdrive

Overdrive overdrives the filter input resulting in a distorted, raspy sounding filter; this is especially evident when large amounts of resonance are used.

LFO Rate

A sinusoidal LFO (Low frequency oscillator) is available to modulate the Env mod parameter. LFO Rate controls the rate (speed) of the LFO.

LFO Depth

LFO Depth controls the modulation range of the LFO. The maximum modulation range is the distance between the current Env mod value and its maximum. Reduction of LFO Depth reduces the top bound of this range. At its minimum setting no LFO modulation is applied.

Sequence Grid

The sequence grid represents the pattern being played. There are sixteen columns, each of which represents the state of a sixteenth note within a single bar loop.  Beat numbers (1 to 4) are marked along the top of the pattern grid.

•	The top row indicates the on/off state of each note in the pattern. Notes may be toggled on and off by clicking on cells in the top row.

•	The second row indicates whether a note is accented or not (accent amount is controlled by the Accent knob). Accents are toggled on and off by clicking the appropriate cell.

•	The third row indicates whether a note is tied on to the following note. Ties are toggled on and off by clicking on the appropriate cell.

•	The final row shows the pitch of each note.  This may be edited by left clicking which will display a piano keyboard where the note may be changed.

Reframe

The Reframe buttons rotate the whole pattern left or right by one semiquaver.

 Randomize

The Randomize button will randomly generate a new sequence.

Mulching with Bassline

As with all the contraptions contained within AudioMulch, Bassline has a range of potential uses only limited by the ingenuity of the user.  Most obviously, it functions as both a random and compositional bassline editor suitable for a wide range of popular electronic music styles. By utilising the units audio input function the contraption is extended to make us of a range of filters capable of transforming incoming sound signals (from stored sound files). Of particular interest is the ability of the Basslines Sequence Grid to superimpose new rhythmic structures onto existing sound files.


10Harmonics

Category: Signal Generators

Inputs: none

Outputs: mono

Using the musical concept of Additive synthesis as its theoretical starting point, 10Harmonics is a ten harmonic additive signal generator.  Additive synthesis has its premise in the notion that complex musical sounds can be assembled by adding together a number of relatively simple sound components (which themselves contribute to the overall quality of the produced sound rather than functioning as individually identifiable sounds).  In the case of 10Harmonics, the first ten harmonics of a selected fundamental frequency can be added in varying amounts to the original tone to produce a sound with the desired harmonic content.  10Harmonics output is the sum of 10 sinusoidal oscillators spaced at integer multiples of the fundamental frequency.  The fundamental frequency and the amplitudes of each harmonic can be individually controlled.  A display of the output waveform is also provided.

Parameters

Frequency

The Frequency parameter controls the fundamental frequency (f1) of the additive synthesis.  The frequency may be typed into the edit box provided or adjusted using the slider.  Frequency ranges from 20 to 1000 Hz.

Gain

The gain parameter controls the overall output volume of the contraption.

Harmonic Amplitudes

Individual sliders are provided to control the amplitude of each harmonic.  The amplitude sliders indicate the absolute gain of each harmonic, while the waveform display shows a normalized view of the composite waveform.


BubbleBlower

Category: Signal Generators

Inputs: none

Outputs: left, right

BubbleBlower is a stored sample granulator based on the CloudGenerator program by Curtis Roads and John Alexander. BubbleBlower is in many ways similar to DLGranulator, but differs in two main respects: Firstly, the distribution of grains in time is based on a Density factor per unit time as opposed to DLGranulators interonset time parameter. Secondly, BubbleBlower draws sound for the grains from a sample loaded from a file rather than from a delay line filled in real-time.

Note: While you can load a sound file of any size into the BubbleBlower contraption, it will only draw sound for the grains from the first fifteen seconds of the sample. For information on supported file types and file related configuration please consult the Mulching with Sound Files section of this Help file.

Parameters

File

Specifies the soundfile to use as the source for granulation.

Amp - Grain Amplitudes

Specifies the range of possible amplitudes available for each grain.

Pan - Grain Pans

Specifies the range of possible stereo panning locations available for each grain.

Inskip  Sample inskip

Specifies the range of possible sampling inskips available for each grain. Each grain is individually sampled from stored sample loaded from the file specified by File.

Trans - transposition factor

Specifies the range of possible transposition factors available for each grain. The notch marks unity, the slider has a range of +/- 2 octaves.  Transposition factor effects the rate at which each grain is played back. Positive transposition factors will have the effect of shifting the output higher in pitch while negative factors will lower the pitch of the output.

Density

Specifies the average density of grains, expressed in number of grains per second.

Max Grains - Limit maximum simultaneous grains

Due to the limited processing power of computers it is not realistic to mix an infinite number of overlapping grains in real time. The maximum allowed with BubbleBlower is 20, this may be too many for slower systems to mix in real time. Max Grains is provided to avoid audio glitches on slower machines. Lowering Max Grains will lower the CPU load but will thin out granulations using a lot of overlapping grains.

Quant  quantization amount and quantization grid

When the clock is running, BubbleBlower allows the onset times of all grains to be quantized.  The slider allows the amount of quantization to be set, ranging from none (minimum) to total (maximum). The combo box allows selection froms a variety of quantization pulses. Quantization is only active when the clock is running.

GDur - Grain Duration

Specifies the range of possible durations available for each grain. Gdur can range from 10 to 500 milliseconds.

Shape - Envelope shape

Each grain has an amplitude envelope consisting of an attack, sustain and decay portion. TrapFact determines the duration of the sustain portion relative to the duration of the attack and decay portions. When shape is 0, the envelope is a triangle, when it is 1 the envelope is a rectangle.

Skew - Envelope Skew

Specifies the range of possible envelope skew factors available for each grain. Skew adjusts the relative duration of the attack and decay portions of the grain envelope. Smaller values of skew lessen the attack time and increase the decay time, larger values of skew lessen the decay time and increase the attack time. Both extremas of skew are useful for creating more interesting grain profiles when longer grain durations are being used.


LoopPlayer

Category: Signal Generators

Inputs: none

Outputs: left, right

LoopPlayer is a clock synchronised sample loop player.  It is commonly used for playing back sampled or pre-recorded drum loops in time with other clock-synchronised contraptions.  LoopPlayer will not output any sound if the clock is not running.  The whole sound file is loaded in to ram, so be careful using large files on machines with small amounts of physical ram.  The controls for LoopPlayer are described below.

Parameters

File

The file panel identifies the sound file currently loaded into LoopPlayer.  Files may be selected by clicking on the open button next to the file panel.  An exclamation mark (!) next to the file name indicates that the file does not exist. While mono and stereo files recorded at varying sample rates can be opened using LoopPlayer, it is important to note that the contraption will store and play no more than the first fifteen seconds of any file. For information on supported file types and file related configuration please consult the Mulching with Sound Files section of this Help file.

Mute

When checked, Mute silences the output of LoopPlayer from the start of the next bar.  When mute is unchecked, LoopPlayer resumes audio output from the start of the next bar.

Bars

Bars is the number of bars contained within the sample loop.  It is used to determine how often to re-trigger the sample, and when stretch is active  how to transpose the sample to conform to the current tempo.

Phase

Phase shuffles the sample forward or backwards relative to the clock in semiquaver increments.

Stretch

Stretch transposes the sample so that its playback duration exactly matches the duration of the number of bars specified with Bars, at the current tempo.  With Stretch checked, the sample will remain syncronised to the clock even if the tempo is altered.  The pitch of the sample will be altered however.

Mulching with LoopPlayer

While LoopPlayers role within most AudioMulch documents could be considered a seconday one it should not be ignored as a useful means of assembling sound fragments and samples into ordered wholes. For example: the average Pentium machine running Windows 95 can support 12 LoopPlayers running simultaneously. Theoretically, these twelve samples (if divided into drum loops, basslines, musical passages, and vocal phrases) could then be re-constructed in realtime to form live and evolving remixes of existing material. Using the mute and stretch functions, the user can then both alter and alternate between those samples loaded


NastyReverb

Category: Effects

Inputs: mono

Outputs: left, right

As the name suggests, NastyReverb is a very ordinary computer-music circa 1980 style reverb.

Parameters

Reverb time

The Reverb time parameter controls the time the reverb takes to decay to silence, Reverb time ranges from 100ms to 10 seconds.

Wet/dry mix

Wet/dry mix controls the ratio of input vs. reverberated signal.

Mulching with NastyReverb

An everyday concept, Reverb is the naturally occurring process of sound reflection. When we listen to a sound we hear not only the original signal, as it travels from source to ears, but also a series of later reflections as the signal bounces from source to wall to ears. These reflections can take a variety of sonic paths arriving at varying intervals and strengths thus creating the reverb effect. Used subtly, NastyReverb can create the illusion of space when applied to an otherwise flat mono input.


Flanger

Category: Effects

Inputs: mono

Outputs: mono

Originally produced using two slightly out of sync reel-to-reel tape machines, the flanger imposes a modulated whooshing sound (phase cancellation) across the input signal. In this digital implementation, a comb filter frequency modulated by a sine wave is used.

Parameters

Range

 Range specifies the minimum and maximum frequencies between which the filter is swept. The extremes of range are 20hz and 4000hz.  Range is controlled using a Range Slider; the use of which is described in the Using Contraption Controls section of this help file.

Rate

Rate specifies the rate at which the filter is swept up and down between its minimum and maximum frequencies.  The rate ranges from 1 cycle every 100 seconds to 100 cycles per second.

Feedback

Feedback controls the amount that the flanger resonates at its cutoff frequency, higher values of feedback produce a more noticeably pitched effect.

Wet/Dry mix

Wet/dry mix controls the ratio of input vs. flanged signal.


Phaser

Category: Effects

Inputs: mono

Outputs: mono

Unlike the Flanger, the Phaser has been an effect entirely developed within the electronic field. Despite this important difference however, the phaser similarly imposes a modulated whooshing sound (phase cancellation) across the input signal. In this digital implementation, a series of all-pass filters frequency modulated by a sine wave are used. While the theory behind the Phaser and Flanger is similar it is important to note that there is a significant difference between the sound produced by each contraption. While the Flanger produces a ringing effect more comparable to a resonant string, the Phaser's effect is more of a hollow resonance.

Parameters

Range

Range specifies the minimum and maximum frequencies between which the filters are swept. The extremes of range are 20hz and 4000hz.  Range is controlled using a Range Slider; the use of which is described in the Using Contraption Controls section of this help file.

Rate

Rate specifies the rate at which the filter series is swept up and down between its minimum and maximum frequencies.  The rate ranges from 1 cycle every 100 seconds to 100 cycles per second.

Feedback

Feedback controls the amount that the phaser resonates at its cutoff frequency, higher values of feedback produce a more noticeably pitched effect.

Depth

Unlike the Wet/dry mix controls of the Flanger the Depth control effects only the level of phased signal mixed back in with the input rather than controlling the ratio of one vs. the other.


RingAM

Category: Effects

Inputs: carrier, optional modulator

Outputs: mono

The operation of the RingAM is based on the processes of Ring and Amplitude modulation in which an external input (carrier input signal) is combined with either an internal sinusoidal modulator or a second external input  serving as a modulator. The process at its most basic level involves the combination of two discrete signals to produce a single output, which is comprised of both the sum of and difference between those original frequencies. These new frequencies are called sidebands, the upper sideband relating to the sum of the frequencies and the lower relating to their difference.

RingAM facilitates three different versions of this modulation process. Amplitude modulation (AM), Ring modulation (Ring Mod), and External modulation. Both AM and Ring Mod utilise an internal sinusoidal modulator (AM multiplying the input signal by a positive sinusoid ranging in amplitude from 0.0 to 1.0 while Ring Mod uses an a/c sinusoid ranging from 1.0 to 1.0). When an external modulator is provided at the second input, the internal sinusoidal modulator is disabled, hence the Frequency and Ring Mod / AM controls will have no effect. External modulation is always full cycle (a/c) ring modulation.

Parameters

Frequency

Frequency controls the frequency of the modulator. The available range is 20Hz to 1500Hz.

Ring Mod / AM

The Ring Mod and AM radio buttons switch between ring modulation and amplitude modulation.

Mulching with RingAM

Compared to many of the other effects featured within AudioMulch (e.g. Reverb, Flanger, Phaser), Ring and Amplitude modulation are neither widely known or used within mainstream musical circles. This lack of use can be attributed to the non-harmonic and dissonant sounds produced by the operation. Having little in common with the harmonic qualities of the original input, the harsh product of the RingAM may not be to everyones taste. This dissonance can be smoothed, however, by mixing it back in with the original input. By running the output of the RingAm and the original signal through a mixer this balance can be adjusted to create an unusual alternative harmony rather than a seemingly irrelevant tone.


SDelay

Category: Effects

Inputs: mono

Outputs: left, right

As its name suggests a delay takes an input signal and replays it after a defined delay time. This delayed signal can then be mixed back in with the original signal to create an echo effect. By rechannelling the delayed signal back through the delay line (Feedback) the number of repetitions can be increased. The Feedback value determines the number of repetitions or decay time of the delay. SDelay is a stereo ping-pong delay line.  It is configured with its right output fed back into both inputs to create stereo bouncing type delay effects.  The delay times for the left and right channels may be independently varied, either in milliseconds or semiquavers relative to the tempo.

Parameters

Delay Units

Delay Units allows delay times to be specified either in milliseconds or semiquavers.

Delay times

Separate delay times for the left and right channels may be specified either by typing delay times directly into the edit boxes provided, or by using the increment/decrement arrows next to the edit boxes. Delay times can range from 20ms to 2 seconds

Feedback

Feedback controls the amount of delayed signal from the right output which is fed back into the input. Larger values of feedback cause the delays to echo for longer. Beware of feedback values close to maximum, these may cause the delay line to blow up.

Wet/Dry mix

Wet/dry mix controls the ratio of input vs. delayed signals.

Mulching with SDelay

Put simply, a delay effect is useful for filling out or widening an instruments sound. This widening can serve a range of purposes with differing contexts demanding varied approaches. As a part of the ever-changing network of contraptions facilitated by the structure of AudioMulch these differing applications are particularly relevant.

When combined with Drums, SDelay can either serve to swing the programmed sequence or may be used to increase the complexity of a relatively simple rhythmic pattern. Using a relatively small Delay time, equivalent to or less than a semiquaver (125ms), with no Feedback and the Wet/Dry mix set at maximum  Wet  a simple pattern would be shifted off the beat in relation to other clock synched signals creating a swing feel. Multiple Drums, with or without delay, could be used in this way if only certain aspects of the pattern are to be swung (ie. the snare). By increasing Feedback and mixing in the original source (drying out the mix) the feel is changed. This function is particularly useful when trying to create more complex rhythms as Drums offers only a basic sequencing pattern.

By running live vocals or instruments through a SDelay with a Delay time of between 50-100ms and an evenly balanced mix, it is possible to create a doubling effect which recreates the sound of another vocalist/instrumentalist singing or playing in unison.


SSpat

Category: Effects

Inputs: mono

Outputs: left, right, reverb send

SSpat is a stereo spatialiser, allowing the projection of a moving mono source signal into a virtual plane lying behind a pair of stereo speakers.  The path along which the source travels may be specified, along with various parameters effecting the apparent dimensions of the virtual plane.  A reverb send is provided to allow a more realistic room simulation to be achieved. The reverb send is a delayed version of the input, amplitude scaled relative to its distance from the rear of the virtual plane.

Parameters

Path

The Path pane allows the specification of an arbitrarily complex spatialisation path. The path defines the shape (but not necessarily the position or scale) of the trajectory along which the source travels. The path is specified by a looped spline, which consists of 3 or more segments. Segments are added to the path by clicking anywhere along the existing path. To move a segment, click and drag a handle (square box). To delete a segment, hold down the control key and click on the segment you wish to delete.

Trajectory

The Trajectory pane controls the location of the path within the virtual plane. The blue L and R boxes at the bottom of the Trajectory panel indicate the location of the speakers relative to the trajectory (viewed from above, with the listener below the pane). The path can be moved by dragging with the mouse, rotated by dragging up and down with the control key depressed, and scaled by dragging up and down with the shift key depressed.

Velocity

Velocity controls the rate at which the source travels around the trajectory.

Scale

Scale controls the relative size of the virtual room; this effects the amplitude and doppler shift of the source. Larger values of scale make the rear of the virtual plane further away.

Doppler Amount

Doppler Amount attenuates the amount of doppler shift. At minimum, no doppler shift is applied to the source.

Amp Amount

Amp Amount effects the amount of attenuation applied to the source as a result of its distance from the virtual listener. At minimum, no attenuation is applied to the source.

Separation

Separation effects the apparent width of the stereo image. Larger values of separation produce more pronounced left-right panning.

Reverb Scaling

Reverb Scaling works similarly to Amp Amount but applies to the distance based scaling of the source as it is sent to the reverb send output.


Shaper

Category: Effects

Inputs: mono

Outputs: mono

Shaper creates harmonic distortion using a Chebychev polynomial waveshaper. This distortion method allows the user to graphically edit the relative strength of the first 27 harmonics that would be induced given a full strength sine wave input signal. In practice various signals may be passed through Shaper, the harmonic content of the resultant distorted signal will be related to the user specified shaping function and the harmonic content and amplitude of the input signal.

One use of Shaper is as a flexible distortion processor. Often only distortion of the first few harmonics is required to create complex distortion effects. The more complex the input is, the less distortion is required to create a noticeable effect.

Shaper may also be used for non-linear waveshaping synthesis. By passing a full strength sine wave or other simple waveform (such as those generated by TestGen and Additive10) through Shaper and modulating the Input Gain, various harmonic spectra may be synthesized. When a full strength sine wave is passed though Shaper with maximum Input Gain, the shaping function introduces distortion such that the output signal contains harmonics whose relative strengths are those specified in the Harmonic weightings graph.

Shaper is very sensitive to input level - varying amounts of distortion will be produced depending on the level of the input. The harmonic content introduced by a less than full strength sine wave or non-sinusoidal input is not easily predicted. By varying the Input Gain interesting shifts in the harmonic balance may be created. Overdriving Shaper may produce harsh clipping distortion, care should be taken when setting the Input Gain parameter when such clipping is undesirable.

Parameters

Input Gain controls the level of the signal entering the shaping function - owing to the internal scaling algorithm, Input Gain effects only the amount of shaping distortion applied, and not the output level of Shaper.

The Output Gain parameter varies the output level of Shaper independent of the Input Gain.

The Harmonic weightings graph allows the relative strength of the harmonics introduced by the shaping function to be specified. As the mouse is moved over the graph, individual harmonics are highlighted - clicking on a harmonic and dragging up and down sets the relative strength of the selected harmonic. Odd harmonics are displayed in red, even harmonics are displayed in blue.

By holding down the shift key and clicking and dragging the mouse horizontally it is possible to 'paint' all of the Odd harmonics. The same task can be performed for even harmonics by pressing the control key while dragging. When both the shift and control keys are depressed all harmonics can be "painted".

Harmonic 0 is equivalent to the input signal - if only this harmonic is specified in the Harmonic Weightings graph Shaper will output the input signal with amplitudes up to the maximum input level - exceeding this level will introduce audible clipping distortion which can be eliminated by reducing the Input Gain.

The Shaping function displays a graph of the distorting function that is applied to the input signal to produce the output signal. The input is graphed on the horizontal axis, output on the vertical axis.


DigiGrunge

Category: Effects

Inputs: mono

Outputs: mono

DigiGrunge allows the controlled application of two major types of digital distortion: bit depth quantisation noise and sample rate decimation aliasing. It can be used to demonstrate digital distortion and to create extremely clipped and distorted sounds characteristic of low bit rate sampling techniques.

As the bit depth quantisation technique employed is dependent on input level, the Input Gain control allows the input signal to be adjusted to obtain an optimal amount of quantisation noise.

The Bit Depth parameter controls the number of effective bits being used to represent the signal. A Bit depth of 1 reduces the signal to either on or off (plus a sign bit) creating an extreme clicking distortion. Such a signal can be used as an input for resonant contraptions like 5Combs or Phaser to create sounds with a percussive quality. Less extreme settings of Bit Depth are useful for creating the type of digital noise commonly associated with older digital samplers and computers.

The Decimation parameter controls the amount of effective sample rate reduction. A decimation setting of 1 maintains the signal at its original sampling rate, a decimation setting of 2 reduces the effective sample rate to half the original - usually from 44.1kHz to 22.05kHz. Note that this effect is not intended to produce clean down sampling  it introduces a large amount of digital distortion by sampling and holding the input signal at the effective sampling rate.

An effect called digital aliasing causes all frequencies in the input signal that are above half the effective sample rate (technically referred to as the Niquist frequency) to be reflected below the Niquist frequency by the same amount as they were above it. Thus as the decimation parameter is increased frequencies a long way above the Niquist frequency get reflected progressively lower below it, often resulting in low frequency tones and other artifacts.


5Combs

Category: Filters

Inputs: mono

Outputs: mono

A comb filter is a really short delay line with feedback. The delay is usually so short that you can hear it resonating at a specific pitch. This occurs as the result of periodic cancellation and reinforcement, which in turn creates a series of harminically related peaks and notches throughout the audio frequency range. Another way to think about it is as a guitar string, except instead of strumming, you feed an audio signal into it and it resonates.

5Combs is a bank of 5 comb filters in parallel. Maintaining the analogy above the 5Combs contraption is like a 5 stringed guitar, except that the frequency range of each string is changeable. By selecting and amplifying particular frequencies within the input signal one can either create a dissonant or complementary chordal drone from a signal which originally seemed to possess no harmonic quality (i.e. Drums).

Parameters

Master Gain

Master Gain adjusts the overall output volume of 5Combs

For each of the 5 filters:

Frequency

Frequency controls the fundamental frequency of each comb filter. Frequency can be specified with the slider, or entered as a musical note on a piano keyboard by clicking on the note name next to the slider.

Decay

Decay determines how long each filter "rings" for. Depending on the input signal your mileage may vary. The decay slider theoretically ranges from almost 0 to 10 seconds.

Gain

Gain provides independent gain of each comb filter.


ParaEQ

Category: Filters

Inputs: mono or left, right

Outputs: mono or left, right

MParaEQ and SParaEQ are mono and stereo versions respectively of a parametric equalizer consisting of a high shelving filter, two sweepable midrange boost/cut filters and a low shelving filter. The ranges of each filter section is described below:

Cutoff/Center frequency (cf)	Bandwidth (bw)	Gain

Hi	3  18Khz	-	+/- 30db

Mid1	50Hz  15Khz	10Hz  2KHz	+/- 30db

Mid2	50Hz  15Khz	10Hz  2KHz	+/- 30db

Low 	20Hz  3Khz	-	+/- 30db


CrossFader

Category: Mixers

Inputs: 1 (left), 2 (right), 3 (left), 4 (right)

Outputs: left, right

CrossFader is designed to crossfade between two stereo input signals. Mono signals applied to either input of either stereo pair are automatically bridged to the other input of that pair. As well as the crossfade slider, master gain (Master), and individual trim knobs (1&2 and 3&4) for each stereo pair are provided.


M*mixer

Category: Mixers

Inputs: 1 (mono), 2 (mono), . . .

Outputs: mono

M*Mixers (where * indicates the number inputs), are mono mixers with a master gain control (M) and individual gain controls for each input (1, 2, etc.).


P*mixer

Category: Mixers

Inputs: 1 (mono), 2 (mono), . . .

Outputs: left, right

P*Mixers (where * indicates the number inputs), are mixers with mono inputs and a stereo output. A master gain control (Master) and individual pan and gain controls for each input (1, 2, etc.) are provided.


Matrix

Category: Mixers

Inputs: 4 or 8 matrix input

Outputs: 4 or 8 matrix outputs

4x4Matrix and 8x8Matrix provide a means for dynamically routing signals without repatching the document. The grid represents each input as a row, and each output as a column. Enabling cells (by clicking on them, or navigating with the cursor keys and selecting with the space bar) causes a connection to be made between the input of the specific row and the output represented by that column. More than one input may be connected to an output at the same time, in which case the signals are summed.

The FadeTime parameter determines the time taken for a newly enabled input to be faded into the output, or a newly disabled input to be faded from the output. FadeTime can range from 0ms to 100seconds. Short values of fade time can be used to prevent clicks when switching, longer fade times can be used to create slowly fading mixes.


Gain

Category: Mixers

Inputs: 1, 2, 4, and 8.

Outputs: 1, 2, 4, and 8.

MGain, SGain, QGain and OGain are one, two, four and eight input/output gain modules that attenuate each of their inputs by a gain factor controlled by a single knob. A Gain contraption may be used to apply global attenuation to a set of signals that are mixed using AudioMulch's automatic bussing feature (multiple outputs patched into a single input).


Nebuliser

Category: Filters

Inputs: mono

Outputs: left, right

Nebuliser is an implementation of a delay line granulator. A delay line granulator samples small sonic fragments (typically < 100ms) from a delay line, and reassembles them into a stream of enveloped "grains".  Granulators are useful for generating dense textures, pitch shifting and other audio mulching tasks. A "grain" refers to a single sampled fragment with an envelope applied to it. Each grain has parameters that determine how the grain is sampled from the delay line and how it is enveloped and panned. The interonset time parameter (IOT) determines the time between the start of one grain and the start of the next in the output stream. Other parameters control input, output, feedback and wet/dry mix levels. Many parameters make use of range sliders (see Using Contraption Controls) to specify a range of values; in such cases each grain is assigned a random value from within the specified range. In addition to the processes also carried out by DLGranulator, Nebuliser passes each individual grain through a bandpass filter. In this way Nebuliser is more of a granular filter than delay line granulator.

Parameters

InGain - Input Gain

Specifies the amount the input signal is scaled before it is granulated.

Amp - Grain Amplitudes

Specifies the range of possible amplitudes available for each grain.

Pan - Grain Pans

Specifies the range of possible stereo panning locations available for each grain.

Delay - Grain Sampling Delay

Specifies the range of possible sampling delays times available for each grain. Each grain is individually sampled from the delay line. If the minimum and maximum values of Delay are the same, the output will be a granulated version of the input signal, delayed by the amount specified. If the minimum and maximum values of Delay specify a range, this will have the effect of time smearing the input signal (each grain will select a random delay time from within the specified range). Delay ranges from 0 to 9.5 seconds.

Feed - Feedback

Specifies how much of the granulated output is fed back into the delay line input. This can be used to create arpeggiating effects when the transposition factor is not unity.

Mix - Wet / dry mix

Specifies the ratio between granulated and input sound presented at the output.

Trans - transposition factor

Specifies the range of possible transposition factors available for each grain. The notch marks unity, the slider has a range of +/- 2 octaves.  Transposition factor effects the rate at which each grain is played back. Positive transposition factors will have the effect of shifting the output higher in pitch while negative factors will lower the pitch of the output.

IOT - interonset time

Grains are mixed into the output stream in an overlapping sequence, interonset time determines the time from the beginning of one grain to the beginning of the next. If the grain duration (GDur) is less than the interonset time, a particled texture will result. When grain durations exceed interonset time, grains will overlap making it possible to create smooth textures. Interonset time ranges from 5ms to 2 seconds.

Max Grains - Limit maximum simultaneous grains

Due to the limited processing power of computers it is not realistic to mix an infinite number of overlapping grains in real time. The maximum allowed with DLGranulator is 20, this may be too many for slower systems to mix in real time. Max Grains is provided to avoid audio glitches on slower machines. Lowering Max Grains will lower the CPU load but will thin out granulations using a lot of overlapping grains.

Quant  quantization amount and quantization grid

When the clock is running, DLGranulator allows the onset times of all grains to be quantized.  The slider allows the amount of quantization to be set, ranging from none (minimum) to total (maximum). The combo box allows selection froms a variety of quantization pulses. Quantization is only active when the clock is running.

GDur - Grain Duration

Specifies the range of possible durations available for each grain. Gdur can range from 10 to 500 milliseconds.

Shape - Envelope shape

Each grain has an amplitude envelope consisting of an attack, sustain and decay portion. TrapFact determines the duration of the sustain portion relative to the duration of the attack and decay portions. When shape is 0, the envelope is a triangle, when it is 1 the envelope is a rectangle.

Skew - Envelope Skew

Specifies the range of possible envelope skew factors available for each grain. Skew adjusts tduration of the attack and decay portions of the grain envelope. Smaller values of skew lessen the attack time and increase the decay time, larger values of skew lessen the decay time and increase the attack time. Both extremas of skew are useful for creating more interesting grain profiles when longer grain durations are being used.

FFreq - Filter Frequency

FFreq defines the range of possible centre frequencies from which each grains filter center frequency is selected.

FQ - Frequency Q

FQ defines the range of possible widths for the bandpass filters used on each individual grain. The higher the FQ setting the narrower the range. A narrower range will result in the perceived tuning of the grains, as the filter will accentuate tighter bands of frequencies.


Arpeggiator

Category: Signal Generators

Inputs: none

Outputs: mono

Arpeggiator provides the functionality of an analog dual oscillator synthesiser with an arpeggiating sequencer. Arpeggiator synchronises to the clock, which must be running for Arpeggiator to make any sound.

As its name suggests the Arpeggiator synth creates monophonic arpeggios of myriad length, direction and range. Based around two separate sine, square or saw-tooth oscillators running in unison, Arpeggiator is primarily controlled by its two octave keyboard and trigger sequencer. Other parameters control the direction, range, and regularity of the arpeggios and the balance between the two oscillators.

See the individual parameter references for a greater explanation of Arpeggiator's operation.

Parameters

Volume

Volume controls the output level of Arpeggiator.

Mute

When checked Mute disables sound output.

Oscillator selectors (Osc1, Osc2)

These select boxes define the waveform of the two oscillators. You can select between a saw, sine and square wave for either or both of the oscillators.

Osc2 Trans - Oscillator two transpose

This select box controls the transposition of Osc2 in relation to Osc1. The integer values within the box represent the number of semitones by which the oscillator has been shifted.

Detune

Detune provides a more sensitive control over the pitch relationship between Osc1 and 2. While Osc2 Trans allows for the creation of chords by shifting Osc2 in increments of a semitone, Detune shifts both Osc1 and Osc2 in opposite directions around the harmonic centre defined by the programmed arpeggio. Detune produces a maximum difference of a semitone.

Balance

The Balance knob functions as a crossfader between the two oscillators. At 0 only Osc1 is audible while at 1 only Osc2 is audible. At 0.5, the default setting, both oscillators are evenly mixed.

Feedback

Feedback controls the intermodulation of the two oscillators resulting in a dissonant effect. 0 being no intermodulation, 1 being the maximum amount.

Glide

Glide effects those notes tied together within the trigger sequencer. The higher the Glide setting the more the notes slide from one to the next. With a maximum Glide setting the melodic flow of notes tied together is completely fluid with no discernible discrete onset of any tied tone.

Keyboard

The two octave Keyboard is used to select the notes of the arpeggio (Osc1). Once selected a note appears dark blue. If no note is selected the arpeggio features the entire two octaves.

Direction

The Direction select box allows control over the movement of the arpeggio. The arpeggio can flow Up, Down, Up/Down, or in a Random pattern. The selected direction is displayed in the Direction select box.

Bass Octave

This integer select box defines the position of the Keyboard on an actual full keyboard and in turn the Bass Octave or pitch of the arpeggio (Osc1). With 1 being the lowest and 8 the highest.

Range

Range controls the number of times a cycle will recur. It functions in concert with Cy.Trans to define the total melodic range of the arpeggio. See Cy.Trans for further explanation.

Cy.Trans - Cycle Transpose

This parameter only comes into action when the Range setting is more than 1. Every time the cycle (set of notes in the arpeggio), as defined by all other parameters, repeats (as defined by the Range setting) it is transposed by the number of semitones set within the Cy.Trans setting box. If the Cy.Trans setting is 12 (an octave) the second repeat of the cycle will be shifted by an octave and the third (if the Range setting is 3 or more) by a further octave. When the cycle has repeated the defined number of times (Range) it returns to its original melodic point and starts again.

Skip

Both Skip and Repeat are responsible for introducing randomness into the arpeggios. The Skip knob controls the percentage of notes in the melodic sequence that are skipped over or left out.

Repeat

The Repeat knob controls the percentage of notes in the melodic sequence that are repeated.

Trigger Grid

The trigger grid represents the rhythm being played. There are thirty-two columns, each of which represents the state of a sixteenth note within a two bar loop.  Beat numbers (1 to 4) are marked along the top of the pattern grid.

•	The top row indicates the on/off state of each note in the pattern. Notes may be toggled on and off by clicking on cells in the top row.

•	The bottom row indicates whether a note is tied on to the following note. Ties are toggled on and off by clicking on the appropriate cell.

Cycle Length

A feature of the Arpeggiator is that it does not necessarily produce regularly cycling melodic sequences. If the number of notes selected on the Keyboard differs from or is not a factor of the number of triggers enabled in the Trigger grid the sequence may take any number of beats to return to its starting point. Cycle Length allows this irregularity to be controlled by defining the number of beats/bars that can pass by before a sequence will restart. A Cycle Length of 16 represents a one bar cycle, 32 a two bar cycle and so on. A Cycle Length of 0 will have no effect on the sequence and it will carry out its defined course.


VST Plugins

Category: VST Plugins

Inputs: dependent on the particular plugin

Outputs: as with inputs

Using VST Plugins you can expand AudioMulchs synthesis and signal processing capabilities using instruments and effects designed by other people for the VST and VST2 plugin architecture. There are currently hundreds of free and shareware plugins available on the internet, check the AudioMulch website (http://www.audiomulch.com) for links to some relevant sites.

AudioMulch creates the default VST Plugins folder within the AudioMulch parent directory on installation. Third-party plugins installed into or placed within this folder can then be accessed via the VST Plugins submenu of the New contraptions menu, viewed by right-clicking within the Patcher pane. This menu reflects the file structure of the VST Plugins folder allowing for the grouping of plugins through the nesting of folders. This can be useful for organising a large number of plugins according to type or creator for example. If a plugin is placed within or installed into the VST Plugins folder while Mulch is running the VST Plugins contraption menu can be updated without restarting AudioMulch using the Refresh List item, located below the list of installed plugins within the New contraptions menu.

While the VST Plugins folder, located within the AudioMulch application directory, is the default library for third-party plugins it is not the only option. Using the VST tab of the Settings dialog it is possible to configure any folder as the VST Plugins folder, thus removing the need for unnecessary plugin duplication. This process is explained in the section of this Help file relating to the Settings Dialog.

VST Plugins can be used just like other contraptions. Some plugins have their own graphical user interface that will appear as their property editor. For other plugins AudioMulch provides a default editor displaying all parameters and their values. To select a parameter for editing click on it and use the slider to set the value of that parameter.

AudioMulch also provides selective support for the VST fxb preset file format. Many plugins come packaged with a set of presets, and some host platforms allow the creation of further custom presets using the fxb format. AudioMulch allows the user to access and save these externally produced presets while also providing for further preset storage by way of its own Mulching Contraption Presets. Importantly, only the Mulching Contraption Presets can be used to automate preset changes.

Many VST and VST2 plugins will automatically load a set of presets when opened. By right-clicking in the contraption editor title bar these presets can be viewed from the VST Programs item of the pop-up menu. If there are more than 127 presets provided they will be organised into layered submenus.

To manually load a new set of presets or to replace a pre-loaded set, select the Load VST Program Bank (fxb)... item from the pop-up menu and locate the fxb file using the Load VST Program Bank dialog. Once loaded the new bank will replace those presets that were previously available. To save a VST Program Bank for use with other applications, select the Save VST Program Bank (fxb) As... item.


RissetTones

Category: Signal Generators

Inputs: none

Outputs: mono

Based on the work of Roger Shepard in the 1960's and the further developments made later by Jean-Claude Risset, RissetTones is designed to create an acoustical illusion. Perhaps best explained as the aural equivalent of the barber pole, the product of the RissetTones is a gliding tone which seems always to be moving either up or down in pitch while staying in the same general position.

Parameters

Rate

The Rate slider can be shifted anywhere between -5 and 5 Hz. It controls both the speed and direction of the oscillator. At 0 Hz (the default position) the tone is stationary. At -5 Hz the tone sounds like it is gliding continually in a descending scale. At 5 Hz the tone sounds like it is gliding continually in an ascending scale.

Spacing

Spacing defines the individual length of an oscillation. The larger the Spacing setting, the lower the number of oscillations required to complete the illusion.

Range

The Range slider defines the upper and lower limits of the bandpass filter. The higher the upper limit of the filter the higher the pitch of the tone and vice versa. The wider the Range setting, the higher the number of oscillations required to complete the illusion.

Max Oscs - Maximum Number of Oscillations

The Max Oscs setting box defines the number of oscillations within the tone. A figure equal to that of the recommended value (found to the right of the text box) will ensure that the illusion is maintained. A higher setting will cause the tone to overlap on itself while a lower setting will result in irregularities and gaps in the tone.


A Beginners Tutorial

The following tutorial demonstrates the construction of a basic AudioMulch document and will hopefully get you started on your exploration of the many elements of the software.

Before you undertake this tutorial it is recommended that you familiarise yourself with the major user interface elements of AudioMulch as described in the Using AudioMulch section of this help file.

•	Right-click on the Patcher pane and choose New->IO->SoundOut from the context menu.  The SoundOut contraption will appear on the Patcher pane.

•	Right-click on the Patcher pane and choose New->SignalGenerators->Bassline.  The Bassline is a simple monophonic synthesiser.

•	Drag a line from the output of the Bassline to the leftmost input of the SoundOut.

•	Double-click on the Bassline contraption.  The Property Editor for the Bassline will appear in the Property pane.

•	Press the Play button in the toolbar to start the clock running.  This will automatically turn on the sound output as well.

•	Slowly increase the Volume control on the Bassline Property Editor until you can hear the sound.

You should now be hearing the default repetitive pattern of the bassline synthesiser.  Your patch should look like this:

On the Bassline property editor, there is a grid, which represents the pattern played. There are sixteen columns, each of which represents the state of a sixteenth note within a single bar loop.  Beat numbers (1 to 4) are marked along the top of the pattern grid.

The top row indicates the On/Off state of each note in the pattern

The second row indicates whether a note is accented or not (accent amount is controlled by the Accent knob).

The third row indicates whether a note is tied on to the following note.

The final row shows the pitch of each note.  This may be edited by left clicking which will display a piano keyboard where the note may be changed.

•	Leave the notes switched on for each of the beats marked along the top of the grid, (1, 2, 3 and 4), but switch off all the in-between notes.  Then switch on the note next to beat 1.

You should have a pattern which looks like this:

•	Right-click on the Patcher pane and choose New->Effects->SDelay.  We will now patch the Stereo Delay in between the Bassline and the SoundOut.

•	Click on the line that links the Bassline to the SoundOut and press the delete key.  This will clear the connection between the two contraptions.

•	Connect the output of the Bassline to the input of the Stereo Delay.

•	Connect the outputs of the Stereo Delay to the corresponding inputs of the SoundOut.

•	Double click on the StereoDelay contraption.  This will open its Property Editor in the Property pane.

•	Change the Left value of the delay to 375.  Change the Right value to 625.

•	On the bottom of the grid in the Bassline contraption, there is a row of note values.  By default, these values are set to c3 (or middle C in musical terms).

•	Click on the first c3.  A keyboard will pop up.  Use the keyboard to choose the same note one octave up.  When you do so, the note should read c4 instead of c3.  You will hear the note in the resulting pattern.

Your patch should look like this:

You can click and drag the contraptions around in the Patcher Pane if you need to make more room.

We will now insert a Flanger into the line between the Bassline and the StereoDelay.

•	Right-click on the Patcher pane and choose New->Effects->Flanger.

•	Click on the patch cord between the Bassline and the Stereo Delay and delete it.  The sound will stop.

•	Patch the output of the Bassline into the input of the Flanger.

•	Patch the output of the Flanger into the StereoDelay.  You will hear the effect of the Flanger immediately.

•	Double-click on the Flanger to open it's Property Editor.

•	Try experimenting with different Flanger settings to find a sound you like.

Your patch should look something like this:

Try changing the Cutoff, Resonance and Env mod parameters of the Bassline to find some interesting sounds.  Try changing the Wet/Dry mix on the StereoDelay contraption to hear more of the original Bassline input against the delayed output.


Further Reading

The following is a list of books and articles covers various aspects of making music with computers. Most are concerned with the manipulation of sound rather than more traditional electronic music applications. The AudioMulch web site contains a list of online resources that may also be useful.

Moore, F.R. 1990. Elements of Computer Music, Prentice Hall, New Jersey.

Roads, C. 1996. The Computer Music Tutorial, MIT Press, Massachusetts.

Wishart, T. 1994. Audible Design, Orpheus and the Pantomime Ltd. York.

Chadabe, J. 1997. Electric Sound: The Past and Promise of Electronic Music, Prentice Hall, New Jersey.


Command Line Parameters

When AudioMulch is launched from a dos box, it is possible to specify extra arguments to effect AudioMulchs behavior. These arguments are described below.

Usage:

Mulch.exe

Or

Mulch.exe documentName

Or

Mulch.exe [ options ] documentName

Where options can include any of the following:

/a	Enable real-time audio

/p	Play (start audio and clock)

/m	Enable MIDI controllers

/c	Enable chase MIDI sync


Menu Item Reference

File

New	Create a new, empty AudioMulch document

Open...	Open an existing AudioMulch document

Reopen	Open a recently used document

Revert	Abandon all edits since last save

Save	Save the current document

Save As...	Save the current document under a different name

Save a Copy...	Save an alternate copy of the current document with or without sound files

Export to Sound File…	Save an audio segment to a sound file

Exit	Exit AudioMulch

Edit

Undo...	functions only within the Patcher and Automation panes

Redo	functions only within the Patcher and Automation panes

Cut	Cut current selection to clipboard

Copy	Copy current selection to clipboard

Paste	Paste clipboard data

Clear	Clear the current selection

Select All	Select all

Insert Time	Insert Time within the automation sequence

Automation Snap to	Configure universal settings for Snap to

Settings…	Adjust device settings and paths for files

View

Toolbars	Show or hide the various toolbars, Configure Level Meters

Status Bar	Show or hide the status bar

Patcher Pane	Show or hide the patcher

Properties Pane	Show or hide the properties pane

Automation	Show or hide the automation pane

Notes	Show or hide the notes window

Scroll Automation with Playback	Enable or disable Scroll Automation with playback

Show Automation Grid	Show or hide the Automation Grid

Volume Control	Display the soundcards volume control window

Control

Enable Audio	Enable or disable real-time audio

Enable MIDI Controllers	Enable or disable real-time MIDI parameter control

Parameter Modulation…	Configure MIDI parameter control

Play	Start the clock

Stop	Stop the clock

Loop	not implemented

Chase sync	Enable synchronisation with a MIDI clock source

Generate sync	not implemented

Items in the Control menu are disabled if the required contraptions are not present in the document.

Help

Register AudioMulch	Displays shareware registration information

Help Topics	Displays this Help File

About AudioMulch	Displays version and Copyright information


Export to Sound File

When Export to Sound File… is selected from the file menu the Export to Sound File Dialog appears. A number of options are presented with regard to the duration of the particular file segment to be saved and the method by which it is generated. Once the appropriate options have been configured click the Export button to generate the output file, or click the Cancel button to abort the operation.

Three export modes are provided:

Clock Syncronised Pattern creates a file beginning exactly with its duration specified in beats (measured using the current tempo). The first beat of the first exported bar begins exactly at the start of the file. Sounds exported in this way will loop exactly from beginning to end, and may be easily used in contraptions such as LoopPlayer.

Timed Segment allows the duration of the exported segment to be specified in seconds.

Processed SoundIn File requires that the SoundIn contraption is being used as the primary signal generator and that it is configured to play an input file. When this option is used the input file is played from the beginning to enable the easy generation of a processed version of the SoundIn file.

The Record parameter is used to select the number of bars (or seconds) you wish to record.  The Pre-roll parameter determines how many bars (or seconds) will play before the actual recording starts.  This parameter lets you ensure that all sounds have started and that delay times are synchronised.  It's usually a good idea to allow at least 2 bars pre-roll before recording.


Settings Dialog

The Settings dialog box is accessed from the Settings... item in the Edit menu or by pressing the F4 function key.  The Settings dialog box provides a series of tabs for configuring audio driver, input, output and sound file preview settings, MIDI device and synchronisation settings, and the directories AudioMulch searches to locate sound files used in contraptions such as Drums and LoopPlayer.

Note: Changes to settings within the Settings dialog will only take effect once you have clicked Apply or OK. This allows the tuning of AudioMulch while still generating sound.

The Audio Driver tab

At present AudioMulch supports the use of ASIO, DirectSound and Windows Multimedia soundcard drivers. The Audio Driver tab contains all settings relevant to the configuration of Driver Type and their associated hardware Devices.

Driver Type

The Driver Type drop down combo box contains a complete list of the Driver Types supported within AudioMulch. Select a driver type to reveal a further list of settings specific to that driver. Some soundcards only provide support for certain driver types.

Driver Settings

The Driver Settings section of the Audio Driver tab allows for the selection of Devices and configuration of their associated settings. When using ASIO drivers one Device handles both input and output, with DirectSound it is necessary to select a separate Device for each. The devices selected here determine the devices available in the Audio Input, Audio Output and Sound File Preview tabs. In the case of Windows Multimedia drivers all devices will be available.

Buffer Size and Number of Buffers

The Buffer Size and Number of Buffers parameters effect the total audio latency of AudioMulch when generating or processing sound. Some driver types allow both the Buffer size and number of Buffers to be adjusted whereas others allow only the adjustment of Buffer size.

To provide seamless audio output, AudioMulch continuously streams a number of buffers to and from the audio device(s).  The number and size of these buffers can be changed using the Buffer Size and Number of Buffers combo boxes. Depending on the speed of your system and the quality of your sound card and drivers, different values for the Buffer Size and Number of Buffers settings will be optimal.

If desired you can experiment to determine the lowest working values on your system by reducing both buffer size and number of buffers until the audio output begins to break up with clicks and gaps. When using contraptions that continuously read or write to the hard disk, such as SoundIn and SoundOut, larger buffer sizes will probably be more appropriate than in cases where no disk activity is required.

The buffer options available for configuration within the Settings Dialog may be constrained when using some ASIO drivers. When this occurs AudioMulch will automatically display the sound card's currently configured buffer settings. These values cannot be edited from within AudioMulch but should be accessible within the Control Panel of your sound card. This dialog can be launched by clicking on the Control Panel... button located on the right of the Audio Driver tab.

For more information on the optimisation of these settings please consult the Optimising Real-Time Performance section of this help file.

Control Panel (ASIO only)

The Control Panel button, located on the right of the Audio Driver tab, launches the control panel of your sound card. While this has been provided specifically to allow the editing of buffer settings within AudioMulch when using ASIO drivers it will also, depending on the card, allow for the configuration of a range of other card settings without having to close AudioMulch. Importantly, any changes made within your sound card's control panel will not be displayed within the AudioMulch Settings Dialog until the Reset Audio button, located on the bottom right of the AudioDriver tab, is clicked.

Reset Audio (ASIO only)

The Reset Audio button re-initialises PortAudio, the audio engine at the core of AudioMulch. In a process similar to closing and re-opening AudioMulch all audio settings are re-scanned to ensure that any updates or changes made within other programs or control panels have been applied.

Dither Output

The Dither Output checkbox (when checked) enables Dithering, a process that introduces a small amount of noise to increase the dynamic range of lower level output signals.

Overdrive (Windows Multimedia only)

The Overdrive checkbox allows you to trade off performance for stability under marginal conditions  when checked AudioMulch will give stable real-time output priority even when the CPU load is high (approaching or beyond 100%). When audio production is given high priority the user interface will become sluggish and may even freeze. Unchecking the overdrive checkbox may result in less stable audio output when the CPU load is high, but guarantees that the program will not freeze.

It is recommended that Overdrive be disabled except when using documents that are known not to overload the computer (ie those that dont exceed 85% CPU Load).

The Audio Input tab

The Audio Input Devices and Channels grid indicates which soundcard devices and channels are used by which audio input contraptions (SoundIn and AuxIn1 - 11). AudioMulch supports up to 24 channels of real-time audio input using 12-stereo pairs provided by the SoundIn and AuxIn1  11 contraptions. The Devices grid allows you to select which device is used by each input contraption and which channels of that device are used by the left and right channels of the input contraption. Clicking on cells in the device column reveals a combo box displaying all available devices. Clicking on cells in the columns labelled Left and Right allows selection of device channels used as the contraption's left and right outputs respectively. Obviously, this is of most use to users running multi-channel soundcards.

When you change the Driver settings in the Audio Driver tab the Audio Input tab will be configured with the available devices and input channels assigned to the corresponding input contraptions. For example, the SoundIn contraption will use input channels 1&2, AuxIn1 will use input channels 3&4 and so on. In many cases these settings will be appropriate for the general use of AudioMulch.

As with all AudioMulch settings, experimentation may reveal a number of different uses for this routing system and users are encouraged to configure these settings to suit their specific use of the software.

The Audio Output tab

The Audio Output settings configuration is identical to that of the Audio Input settings except that they apply to audio output.

The Sound File Preview tab

The Sound File Preview tab allows for the independent routing of audio from the Play and Auto play preview features of the Select a Sound File... dialogs used throughout AudioMulch where sound files are read from or written to (SoundIn, SoundOut, BubbleBlower, Drums, LoopPlayer, FilePlayer, Export to Sound File...). This feature is provided for people running multi-channel soundcards who may want to monitor Sound File Previews through outputs other than their primary performance outputs. One application of this feature is in the creation of an independent headphone mix.

Sound File Preview configuration is similar to the configuration of both the Audio Input and Audio Output settings. In the relevant channel row (Channel 1&2 for stereo files) select the desired device from the list provided, and then in the final two columns identify the device channels to which you want to direct the Sound File Previews.

Note: Additional channel rows are provided for previewing multiple channel sound files.

The MIDI & Sync tab

The MIDI & Sync tab allows independent selection of the MIDI devices used for parameter control and MIDI clock synchronisation. The same device may be used for both purposes.

Sync Offset

The Sync Offset setting is provided to allow fine tuning of the synchronisation between MIDI clock and Audio output. Depending on the combination of audio and MIDI hardware you are running, it is not uncommon to find some time delay between the two. The Sync offset setting compensates for the delay generated by the specific hardware setup. There are no recommended values here, and tuning is purely a matter of experimentation.

The VST tab

VST Plugins folder

As explained in the VST Plugins section of this help file, VST and VST2 plugins must be placed in or installed into a specific folder if they are to be used within AudioMulch. While a default folder has been provided within the AudioMulch sub directory (...Program Files\AudioMulch 0.9b9\VSTPlugins) this is not the only option.

The VST Plugins folder allows you to configure this location to wherever your VST and VST2 plugins have previously been located. By using this function it is possible to eliminate the need for unnecessary duplication of plugins accross your hard disk.

Simply click Browse and select the folder you want AudioMulch to use as its VST Plugins folder. As with the default folder, the menu structure of the selected folder will be reflected in the VST Plugins submenu of the new contraptions menu.

The File Streaming tab

The File Streaming Tab allows for the customisation of AudioMulch's File Streaming settings in line with the multiple applications of the software. The default settings have been selected for reliable operation on most systems and need only be adjusted if problems are experienced while playing back sound files.

Buffer size

The effect of this setting is highly dependent on the hardware and operating system used. Adjusting it up or down may improve sound file streaming performance.

Input/Output queue length

As with Buffer size, increasing the value of both the Input(playback) and Output(recording) queue lengths will assist in the reduction of disk access glitches. Importantly however, higher queue lengths may significantly increase ram usage. If disk access is a priority you should consider using the Always wait for disk access to complete checkbox.

Always wait for disk access to complete

The Always wait for disk access to complete checkbox is the easiest way to ensure sound file recordings are glitch free. When checked, this setting shifts Mulch's priority from Real-time audio to disk access. This option is most suited to situations where you are recording to a sound file through SoundOut. When this mode is enabled, the recorded file will always be free of glitches no matter how much the Real-time audio breaks up. In doing so however it is necessary to reduce the reliability of the Real-time audio stream making live glitching far more likely.

The Appearance tab

The Appearance tab allows for the customisation of the Properties Pane background to an image or color of the user's choice.

Windows default color

The Windows default color preview box displays the default background setting of the currently selected Windows color scheme. This can be adopted as the Properties Pane background by selecting the Windows default color radio button but can only be edited from within the Appearance tab of the Display Properties dialog found within the Windows Settings Control Panel.

Plain Color

An alternative color to the Windows default background can be configured using the Plain Color radio button. Clicking on Select... reveals the Select Color dialog. One of 48 basic colors can be chosen or a custom color can be created using the color and shade palettes. Once added to the Custom colors list using the Add to Custom Colors button the selected color can be confirmed by clicking OK.

Tile Image

An image can be tiled as the Properties Pane background by selecting the Tile Image radio button and using the Browse... button to locate the desired file from somewhere on a local hard disk. At present only JPEG image files, Bitmaps, Enhanced Metafiles, and Windows Metafiles are supported.

NOTE: No changes will be made to the Properties Pane background until the Apply or OK button of the Settings dialog is clicked.


An Introduction to Automation

The Automation pane allows you to automate changes to a Mulching Contraption's parameters.  This includes the values of knobs, sliders (both single-value sliders and Range Sliders), check boxes, (mutes, etc.) and Contraption Presets.

The Automation pane can be made visible or invisible (like the Patcher and Parameter panes) from the View menu or by clicking the [image] icon on the View Toolbar.

Adding or removing a Contraption's parameters to the Automation pane

There are three ways to automate a parameter:

1.	Right-click on a knob, checkbox or other on-screen control and choose Automate from the context menu.  The selected parameter will be added to the Automation pane.

2.	Right-click anywhere on a Contraption and choose Parameter Modulation... from the context menu.  This will open the Parameter Modulation dialog.  Select any parameter and check the Automate checkbox.  The selected parameter will be added to the Automation pane.

3.	Open the Parameter Modulation dialog by either selecting it from the Control menu or by pressing F3, then navigate to the Contraption parameter you want to automate.

To delete a parameter from the Automation pane, you can either open the Parameter Modulation dialog, find the parameter in question and uncheck the Automate check box or Right click within the Automation channel in question and select Unautomate. Alternately, if you only wish to temporarily deactivate a particular automation channel select the (M) mute button at the left hand side of that channel.

Note: It is possible to Undo automation and unautomation but an automation mute can only be un-muted.

Working in the Automation pane

The Ruler

The Ruler bar at the top of the Automation pane displays time in bars/beats.  There is a scrolling cursor which indicates the current time position.  Clicking and dragging below the text on the ruler bar allows you to reposition the current playback position.

At the left end of the Ruler is the Scroll Automation with Playback icon. By clicking this icon or selecting the Scroll Automation with Playback item within the View menu you will enable the clock synchronised scrolling of the entire Automation pane. Disabling the auto scroll feature can be achieved by clicking (left mouse button) anywhere within the Automation pane. This will immediately freeze the Automation pane but will not stop the clock or disable Audio out. Re-selecting Scroll Automation with Playback will cause the Automation pane to fast forward to the current playback position and continue scrolling from there.

Scroll Automation with Playback allows you to follow the design of various automation channels throughout an entire piece and focus in on certain sections when the need arises.

Zooming the Time Axis

You can zoom in and out along the time axis in one of three ways:

1.	Use the zoom buttons located at the bottom of the Automation Pane, on the right side of the horizontal scroll bar.

2. 	Click the mouse on the thin drag-zoom button between the zoom in and zoom out buttons and drag the mouse horizontally while holding the button down to zoom in and out.

3.	The horizontal scroll bar thumb has a small indentation at either end.  Grab (left mouse button) these indentations to zoom in and out.

The Automation Channel Panels

The Automation pane displays each parameter in an Automation Channel Panel.

To the left of each Channel Panel there is a modest control panel with a Mute and Record button and Handles for resizing the height of the Channel Panel.

•	The mute toggle button disables the Channel Panel from sending parameter changes. Toggling the button will re-enable parameter transmission.

•	The record toggle button enables Automation recording for the individual channel. Toggling the button will disable Automation recording for that channel.

•	Dragging on the handle on the lower edge of a channel panel will vertically resize the Channel Panel. This only applies to single and dual valued panels, not preset or check-box panels.

•	Dragging on the body of the control panel allows you to reorder the Channel Panels in the Automation Pane.

There are different types of channel panels for displaying different types of parameters. They each behave in slightly different ways in accordance with the type of parameter being edited. The four channel panels available at present allow automation of:

1.	Single value parameters - knobs and single-value sliders. (eg. Bassline_1.Decay, Phaser_1.Rate, etc.)

2.	Dual value parameters - Range Sliders. (eg. Flanger_1.Range, DLGranulator_1.InteronsetTime).

3.	Contraption Preset parameters.

4.	Checkbox parameters, (mutes, etc.).

Single Value Channel Panels

•	To add a point on the graph, click anywhere on the value line.

•	To delete a point, grab it (left mouse button) and drag it up or down out of the Channel Panel

Dual (Range) Value Channel Panels

•	To add a point, click on either the minimum or maximum edge of the shaded area.

•	To move both values simultaneously, Shift-Drag on either point.

•	To move the opposite point to the one you're currently focussing on, use the Alt key.

•	To move both values simultaneously in opposite directions, Alt-Shift-Drag on either point.

•	To delete a point, grab it (left mouse button) and drag it out of the Channel Panel.

As with the contraption Range Sliders, the modifier keys described above can facilitate a variety of controls without additional mouse-clicks.

Note: within the Automation Pane the control key can't be used to make fine adjustments.

Preset Channel Panels

•	To add a preset change, click on the horizontal line near the bottom of the Channel Panel.  This creates a preset change marker on the line.

•	To move the preset change in time, grab the drag handle at the left hand side of the marker and drag horizontally.

•	Clicking the rollover preset number indicator on the preset change marker opens a  popup menu like those on a Contraption Preset.  Choose the appropriate preset from this list.

•	To delete a preset change, grab it (left mouse button) and drag it out of the Channel Panel.

  Checkbox Channel Panels

•	To add a checkbox parameter, click on the horizontal line near the bottom of the Channel Panel.  This creates a checkbox marker on the line.

•	To move the checkbox marker in time, grab the drag handle at the left hand side of the marker and drag horizontally.

•	Click the checkbox marker to enable or disable the parameter.

•	To delete a checkbox marker, grab it (left mouse button) and drag it out of the Channel Panel.

Note: As with contraption knobs and sliders within the Properties Pane, a pop-up value display can be accessed for all automation points and tabs. Unlike the Properties Pane these pop-up displays can be revealed by simply rolling over a point or tab with the mouse arrow. Within the Automation Pane these pop-ups contain information regarding both the time ruler position and parameter value of the point or tab.

Automation Grid

In addition to the Ruler above the Automation pane it is possible to display a Grid accross the automation channels by selecting Show Automation Grid from the View menu. The grid can be hidden by unchecking the menu item. This grid is a guide which facilitates a higher degree of precision when editing within Automation channels. As with the time axis the Automation Grid updates as you zoom in allowing a clear and detailed representation of time at any resolution.

Snap to

Snap to provides the most exact approach to mouse editing within Automation channels. It can be enabled/disabled for each channel individually by right-clicking within the empty space of an Automation channel and selecting Snap to. Unlike the Automation Grid itself, Snap to is not a global setting as it is suited to the control of some parameters (For example; Presets) more than others. The degree of snapping is also variable and can be changed using the Automation Snap to item of the Edit menu. If Grid is selected all points will Snap to the nearest visible grid line when editing. If one of the Automation Snap to values is selected points will snap to the nearest relevant value. Snap to will function whether the Automation Grid is displayed or hidden.

Note: pressing and holding down the Alt key while editing points or markers will cause the edit to behave contrary to the current Snap to mode (ie; if Snap to is enabled, Alt click will edit the point without Snapping).

Automation Looping

An additional feature of Automation is the ability to loop a section of composition over and over again.

To enable Looping, click on the Loop [image] icon within the Transport Toolbar or double-click in the area above the text on the Automation Ruler. This creates a Loop point marker on the upper edge of the Automation ruler. By grabbing (left mouse button) the handles at either end of the marker you can define the length and position of the looped section. By grabbing the centre of the loop it is possible to move the entire marker to a different position within the composition. When moving either the handles or the entire loop the marker will Snap to the current Automation Snap to setting. The loop can be disabled either by clicking the Loop toolbar button or by double clicking the loop markers on the Automation Ruler.

This feature is particularly useful for refining a section of automation within a larger piece but could also be employed to reduce load on the CPU when working on complex but repetitive pieces. Notably, when Automation looping is disabled and then enabled using the Loop icon, the Loop point marker reappears in the position it last occupied. This means that if a section in the middle of a composition was to be repeated indefinitely (ie. a solo section in a backing track) the Loop marker could be enabled during the relevant part and disabled when it was time to return to the sequence, rather than automating the entire section. Thus reducing the length of the AudioMulch track and strain on the machines CPU.

Automation Recording

It is possible to record parameter modulations into Automation channels from MIDI and on-screen controls (knobs, sliders etc.). To record parameter changes, enable automation for the desired channel and enable recording for the Automation Channel Panel by depressing the red button under the channel's mute button. The master record button (on the transport tool bar) [image] must also be enabled for Automation recording to occur. When the Play button is pressed the Automation channel will then be recording. By pressing the R key on the keyboard the master record can be toggled on and off at any time, enabling the user to drop in and out of Automation record in one or multiple channels while a patch is running. When more than one Automation channel is recording you can drop in and out of record more selectively using each channels individual record button.

Important Note: at present you cannot Undo a recorded Automation sequence.


Optimising Real-Time Performance

When AudioMulch is installed it is configured to perform real-time signal generation and processing on most systems. Due to various factors, optimal real-time performance can only be achieved by tuning AudioMulch on a specific system. It is worth taking the time to tune AudioMulch to take advantage of the capabilities of your system  the program can be much more responsive than when using the default settings.

This section discusses optimal performance in terms of two parameters: latency and stability. Stability is concerned with the reliability of the audio input and output  a stable system will deliver hours of continuous sound without a problem, an unstable system will contaminate the audio stream with clicks, pops, stutters and drop outs. Latency manifests as delays between audio entering your soundcard and emerging from your soundcard after having been processed by AudioMulch (audio latency), and as delays between modifying parameter values on screen or via MIDI and hearing the results (control latency). The lower the latency, the more useful the system is for real-time performance, as the system will be perceived to be operating in the moment rather than with a perceptible delay. Achieving a stable system with the lowest possible latency should be your goal when tuning AudioMulch.

The main cause of stability problems is external programs that perform periodic disk activity. The following are commonly known to interfere with the stable operation of digital audio software.

•	System Agent (included in the Microsoft Plus! pack) can be set to schedule disk scanning and defragmentation at any time  avoid having it wake up while using AudioMulch.

•	Find Fast for Office 95 / 97

•	Screen Savers

•	CD-ROM Auto-Insert Notification

•	Other programs performing processor-intensive operations while using AudioMulch.

Once known sources of instability have been reduced to a minimum AudioMulch settings can be altered to reduce latency until the audio begins to break up, and then eased off until reliable operation is achieved. The settings which control latency are the audio buffer sizes and number of buffer settings associated with the audio driver. Some driver types provide individual settings for input and output, while others provide only one setting for both. Some driver types allow both the size and number of buffers to be adjusted, while others only allow adjustment of buffer sizes. To reduce latency the size and/or the number of buffers may be decreased.

These settings can be altered from the Settings dialog, which can be accessed by either selecting the Settings... item of the Edit menu or F4.

Many factors including the speed of the computer, soundcard and quality of soundcard drivers effect the minimum workable size and number of buffers. You should be aware that some computers may crash if you attempt to use too few, or too small buffers.

Where separate settings are available for input and output buffers it is advisable to use the same buffer sizes for input and output. If audio output is generally stable but glitches occur when using audio input it may be necessary to increase the number of audio input buffers.

In general using more buffers produces greater stability. A few larger buffers are usually preferable to a large number of small buffers. However, there are no hard and fast rules that can be applied to all systems. The best thing to do is to experiment.


Ways to Get Help While You Work

While using AudioMulch you can view this help file at any time by selecting Help Topics from the Help menu of pressing the F1 key.

Help for individual contraptions may be accessed by clicking on the help button (?) in the title bar of the contraption that you are interested in, or by right clicking on a contraption in the patcher and selecting Help from the popup menu.


AudioMulch on the Web

The AudioMulch web site is located at:

http://www.audiomulch.com

You can reach this site by entering the above URL into your web browser, or by selecting AudioMulch Web Site from the help menu within the AudioMulch program.

The AudioMulch web site always contains up-to-date news regarding the latest AudioMulch version, and a variety of other useful resources.


Sending Suggestions and Bug Reports

If you encounter a problem with AudioMulch, whether it be a bug, or a feature you would like to see included. Dont hesitate to contact the author Ross Bencina via email: rossb@audiomulch.com

If you are reporting a bug, please include the following information with your message:

The version of AudioMulch you are using, for example 0.9b10. This information is displayed in the about box, which can be viewed using the Help->About AudioMulch menu item.

A description of the bug, including:

•	What you were doing when it happened

•	whether you can repeat the bug

•	whether the sound in / sound out was active when the bug occurred.

A quick spec of your machine including:

•	OS version (win95, win98, NT4.0 etc.)

•	CPU and Speed (eg. Pentium II 266)

•	Amount of physical RAM (eg. 64MB)

•	Soundcard brand and model


Contacting The Author

Ross Bencina can be reached by email at rossb@audiomulch.com

Or alternately you can send snail mail to:

Ross Bencina

9 Wonga Rd

Ringwood, 3134

Victoria

AUSTRALIA


Copyright/License/Warranty

Copyright

The AudioMulch software, documentation and web site is Copyright ©1997-2003 Ross Bencina. AudioMulch is a trademark of Ross Bencina.

VST support based on the Steinberg VST (Virtual Studio Technology) PlugIn SDK. ASIO support based on the Steinberg ASIO SDK. The Steinberg ASIO SKD and Steinberg VST PlugIn SDK are Copyright Steinberg Soft und Hardware GmbH. ASIO and VST are trademarks of Steinberg Soft- und Hardware GmbH.

Shareware Registration

AudioMulch is not free software. Subject to the terms below, you are hereby licensed to use this software for evaluation purposes without charge. If you intend to use this software on an ongoing basis, a registration fee of US$50 (AU$50 to residents of Australia) is requested. You can register using the Register AudioMulch... menu item within the program, or on the internet via the AudioMulch web site. When payment is received you will be provided with a registration code.

Alpha and Beta Test Versions

Alpha and Beta versions of AudioMulch are distributed for evaluation and testing purposes only. They are configured to expire after a fixed period from their initial release date ( 30 days for alpha versions, 90 days for beta versions ). A valid AudioMulch registration code will prevent expiry. Release versions do not expire.

Distribution

Different distribution policies are maintained for Beta Test and Release versions of AudioMulch. The policies are described below. Beta Test versions can be identified by the presence of a 'b' in their version number such as 0.9b3. The version number is displayed in the About AudioMulch window available from the Help menu within the program.

Release Versions

You are hereby licensed to make as many copies of the Shareware release version of this software and documentation as you wish; give exact copies of the original Shareware release version to anyone; and distribute the Shareware release version of the software and documentation in its unmodified form via electronic means. There is no charge for any of the above.

You are specifically prohibited from charging, or requesting donations, for any such copies, however made; and from distributing the software and/or documentation with other products (commercial or otherwise) without prior written permission.

Alpha and Beta Test Versions

You are prohibited from distributing Alpha and Beta versions of AudioMulch without prior written permission. Alpha and Beta versions should always be obtained directly from the AudioMulch web site at: http://www.audiomulch.com/

Disclaimer of Warranty

THIS SOFTWARE AND THE ACCOMPANYING FILES ARE PROVIDED "AS IS" AND WITHOUT WARRANTIES AS TO PERFORMANCE OR MERCHANTABILITY OR ANY OTHER WARRANTIES WHETHER EXPRESSED OR IMPLIED. NO WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE IS OFFERED.

ANY LIABILITY OF THE PROVIDER WILL BE LIMITED EXCLUSIVELY TO PRODUCT REPLACEMENT OR REFUND OF PURCHASE PRICE.


History of AudioMulch Changes

7 / 4 / 2003

version 0.9b12

•	Added a new "Document Switcher" window allowing documents to be switched under MIDI control

•	Added a new contraption "Frosscader" to the Mixers category - this is a crossfader with a single stereo input pair, and two stereo outputs allowing a stereo signal to be routed to two different signal paths

•	Added two buttons to the ASIO driver panel in the Settings dialog - one allows the driver's control panel to be displayed, the other resets AudioMulch to synchronise with any settings made in the driver's control panel

•	Changed output level meters so that meters work even if the associated output contraption is not assigned to a device in the settings dialog.

•	Fixed crash when trying to "Save as copy with sound files" if any contraption's or preset's soundfile parameters were empty

•	Fixed ASIO support for drivers using non-packed 24 bit formats such as Roland UA-20 and Korg Oasys

•	Fixed bug where the requested ASIO buffer size was off by a small number (eg 4) compared to the selection in the ASIO dialog

•	Fixed bug where assigning "None" as the audio device for input, output or file preview in the Settings dialog would not be restored the next time AudioMulch was launched

•	Fixed bug where Arpeggiator osc2 transpose control wasn't working

•	Fixed bug where MIDI control of presets using Program Change and Channel Pressure messages wouldn't work in some cases

•	Fixed SoundOut "Resource REC_PAUSE_MASC not found" message when dropping into record pause mode

•	Fixed bug where soundfiles containing an ampersand (&) in their paths would not load correctly, the same bug also cause ampersands to be corrupted to &amp; in the notes window

•	Fixed bug where using stereo soundfiles less than 15 seconds long in the BubbleBlower could cause audio from a previous grain, or a different BubbleBlower contraption to bleed into the current grain stream

•	Fixed bug where VST Bank (fxb) files were written in a format that is not readable by other hosts. In general fxb files generated by previous versions of AudioMulch should not be trusted

•	Fixed various display glitches when the user had selected a large DPI fonts setting in the windows Display Properties control panel

•	Fixed bug where Help button incorrectly closed the information dialog that appears when a document can't be loaded correctly

•	Fixed problems with missing images and topics in the help file

31 / 12 / 2002

version 0.9b11

•	Added a new Save a Copy... command to the File menu - this includes an option to save with a copy of all referenced sound files

•	Implemented mouse scroll wheel scrolling for Patcher, Properties and Automation panes

•	Added support for VST presets (.fxb files) via a right-click popup menu in the contraption editor's title bar

•	Contraptions can now be renamed by right clicking on them in the Patcher and choosing Rename from the popup menu

•	Added a new scheme for automatically locating missing sound files, and a user prompt to manually locate files if the automatic scheme fails

•	Support rescanning for VST plugins without restarting the application both when changing the VST Plugins Folder and when choosing Refresh List from the VST Plugins submenu of the New Contraptions menu

•	Implemented safe document save mechanism which should greatly reduce potential for document corruption

•	Made file dialog boxes (Open and Save Document, Select Sound File, Save Sound File and VST Program Bank) remember which directory they were last in between program launches

•	Implemented new splash screen and about box

•	Implemented new Properties pane graphics with background configurable from the Appearance tab in the Settings dialog

•	Updated layout and graphics for Enable ASIO and Shareware Registration wizards

•	Fixed all GUI components to respond to windows color scheme changes

•	Improved legibility of GUI components when using a high-contrast color scheme

•	Restored SoundIn and FilePlayer to pre-09b9 behavior, mono files are now played through both outputs

•	Changed document format to reduce document sizes when a large amount of automation data is used

•	Renamed Drums Mutes parameters to Enables so that both the contraption editor and automation check boxes have the same values

•	Improved the naming of some elements in the XML document format

•	Renamed VST Plugins Directory to VST Plugins Folder in the user interface

•	Changed SSpat to use standard sytem colors

•	Fixed long standing bug which would cause an intermittent crash when opening or reopening a document while audio was enabled

•	Fixed bug where deleting a contraption with automation and then undoing the delete caused duplicate automation channel panels to be created

•	Fixed bug where registration codes were only stored for the currently logged in user, rather than being available for all users

•	Fixed crash when playing a sound file with the Open Sound File dialog if the audio device was unavailable

•	Fixed bug where floating point values were not stored in the document using their full precision

•	Fixed bug where keyboard shortcuts for cut/copy/paste didn't work in the Set Value dialog

•	Fixed bug where Automation Loop Points didn't snap when Automation Snap To was set to Grid (the Alt key can be used to prevent snapping if desired)

•	Fixed bug that caused Fruity Loops VSTi to not sync to the AudioMulch clock

•	Fixed bug which caused a divide by zero when clicking in the bottom margin of the parameter modulation midi mapping curve

•	Fixed problem where sample load progress was not displayed unless audio was enabled

•	Fixed problem where AudioMulch asked if you want to save the document even when no changes were made

•	Fixed drawing glitch in bool breakpoint edit when dragging a point where previous point is checked

•	Fixed bug where automation handles would not be drawn, or drawn in blue with some monitor settings

4 / 10 / 2002

version 0.9b10 patch 1

•	Reduced CPU overhead when using multi-channel ASIO drivers

•	Made Open, Save and Select Soundfile dialog boxes resizable

•	Implemented a scheme that disables ASIO support if ASIO drivers are causing AudioMulch to crash on startup

•	Fixed bug which would cause AudioMulch to crash after opening a document by double-clicking it in Windows Explorer

•	Reduced output level of RissetTones and RissetFilters

•	Moved FilePlayer and RissetTones to Signal Generators category and RissetFilters to Filters category

•	Fixed a bug which could cause AudioMulch to crash at startup on some machines

•	Fixed a bug which could cause a cascading series of Access Violation messages when exiting

•	Fixed a bug which could cause a crash when opening the Select Sound file dialog

•	Fixed bug which would cause a delayed crash when a BubbleBlower with a loaded sound file was deleted or the document was closed

•	Fixed a number of issues related to using AudioMulch with multiple monitors: The preset menu, piano keyboard and value hints now display on the correct monitor

•	Fixed bug which would cause some GRM Tools VST plugins user interfaces to behave eratically

•	Worked around some VST plugins 'droning' or appearing to have hung notes (due to them incorrectly implementing processReplacing)

•	Fixed bug which prevented the MIDI channel for VST plugins such as VSampler and Stylus from being set in the Parameter Modulation dialog

•	Fixed a bug in RissetTones and RissetFilters which sometimes caused the maximum value of the Range parameter to change when the minimum value was changed

•	Fixed bug in RissetFilters which could cause it to stop producing sound if the minimum Range value was too high

30 / 6 / 2002

version 0.9b10

•	Added support for ASIO and DirectSound audio drivers

•	Increased number of supported audio inputs and outputs from 16 to24

•	Added separate audio device and channel selection for Sound File Preview

•	Fixed bug which would cause the following error when loading some old documents: "Assertion failed: rangeElem->ChildCount() ==2"

•      Fixed bug which caused a crash when starting MIDI sync under some conditions

22 / 3 / 2002

version 0.9b9 patch 1

•	Added support for VST2 instrument plugins

•	Fixed bug causing "assertion failed: _state == IsIdle..." when right-clicking in an automation channel while editing a breakpoint

•	Fixed bug where the Delete key would not delete text in the Notes window

•	Fixed bug which caused a "Cannot open clipboard" error to appear when pasting text into the Notes window

•	Fixed problem with there being no way to enter registration details into an expired version

•	Fixed bug which caused a "File not found" error when trying to change the VST plugin directory if the currently selected VST plugin directory didn't exist

•	Fixed bug which caused newly pasted contraptions to not be selected in the patcher

•	Fixed a likely cause of cascading Access Violation error messages when the current document contained VST plugins and a new document was created, an existing document was opened, or when exiting the program

•	Fixed bug in the Soundfile open dialog preview function which would cause previewed soundfiles to be extremely distorted

•	Fixed bug in SoundIn and FilePlayer which would cause 22k sound files to stop playback half way through the file

•	Fixed bug which would cause the windows desktop to redraw every time an automation channel panel was added or removed

•	Made automation channel panel reordering undoable which should fix some (but not all) bugs in the automation undo system

•	Implemented a workaround for bugs that cause multiple automation channel panels to be created for the same parameter: the workaround is to save and reload the document which should remove the duplicate panels

19 / 12 / 2001

version 0.9b9

•	Implemented new sound file streaming engine

•	Added support for AIFF sound files

•	Added support for 24 bit, 32 bit and floating point sound files

•	Added background sample loading / pooling

•	Added display of sound file memory usage, throughput and sample load progress to the status bar

•	Added new FilePlayer contraption to the Beta category

•	Sound File Open & Save dialog Auto Play state is now remembered

•	Added the ability to change the playback position while playing the SoundOut soundfile

•	Moved Arpeggiator from the Beta category to the Signal Generators category

•	Moved PulseComb from the Beta category to the Effects category

•	Fixed bug in Drums where sounds would sometimes play back at high volume after they were muted

•	Fixed bug in SoundOut where the record time selection was in milliseconds although it is displayed as seconds

•	Fixed bug where the last character from the Notes window text was not saved

10 / 9 / 2001

version 0.9b8 patch 1

•	Fixed bug where patch cords were incorrectly drawn from inlet to inlet instead of outlet to inlet when first loading a document or when performing some undo and redo operations

•	Fixed bug where shift-selecting multiple contraptions in the patcher would cause an Access Violation

•	Fixed bug where pasting long text into number fields caused a crash

•	Fixed bug where an invalid floating point operation or divide by zero error could occur when using Automation

5 / 7 / 2001

version 0.9b8

•    Rewrote automation editors to improve responsiveness

•	Added Automation time grid, which can be enabled from the View menu

•	Implemented new level meters which also fixes a bug in which the level meters didn't display the peak (red) segment even when the audio was severely clipped

•	Added automation Snap-to that can be enabled on a per-channel basis by right-clicking automation channels. Snap-to resolution is controlled from the Edit menu

•	Added popup time/value hints on automation breakpoints

•	Added right-click Unautomate menu item on automation channels

•	Added double-click on automation breakpoints to display Set Value dialog

•	Made Automating and Unautomating parameters Undo/Redoable

•	Improved error reporting when trying to save to a read-only document

•	Reduced GDI resource utilisation, which may address the Canvas does not allow bug

•	Fixed bug where SSpat was louder and didnt produce doppler shift when Velocity was set to a negative value

•	Fixed bug in SSPat which caused a crash if the number of trajectory breakpoints exceeded a hardcoded limit (100)

•	Fixed bug where moving splitter bars while automation was playing would cause black lines to be drawn on the
screen

•	Fixed bug where deleting doubled up patch cords would sometimes cause an assertion failure

•	Fixed bug where dragging contraption editors back from the furthest bound caused them to travel twice as far as the mouse

•	Fixed bug which would cause an assertion failure when choosing Set Value from the right-click menu of Matrix grids, RingAM radio buttons and Bassline waveform buttons

•	Fixed bug which would result in a crash when assigning or using MIDI to control parameters

•	Fixed bug which prevented MIDI mapping for Range parameters from being unmapped in the Parameter
Modulation dialog

•	Fixed bug where the Quick-map MIDI dialog would not display the correct controller type(s) if the selected parameter already had a MIDI mapping

•	Fixed bug where clicking in the patcher when there was a totally horizontal patch cord would result in a divide by zero error

•	Fixed bug which caused divide by zero errors in Karlette and Chopper VST plugins

•	Fixed bug which caused db_compressor to crash when set to a high compression ratio

•	Fixed bug which caused FreeverbToo15_5 to crash when displaying its GUI

•	Fixed bug which caused some VST plugins to not have their settings saved correctly, including Cyanide, Deconstructor and TC Native Reverb

•	Fixed bug which caused Documents using presets with VST plugins (GRM and others) to fail
to save and/or load

•	Fixed memory leak in Number Editors

•	Fixed rare bug which would cause an assertion failure when loading a document

•	Fixed Invalid Page Faults when exiting AudioMulch with Automation channel panels present

5 / 5 / 2001

version 0.9b7

•	Added time splicing to automation (cut, copy, paste, clear and insert time)

•	Fixed bug which would cause patch cords to be drawn in incorrect locations after the patch had been scrolled

•	Fixed bug where in timed record mode of Sound Out, the record duration was out by a factor of 100

•	Fixed bug where Export to Sound file would frequently fail with an invalid floating point operation, or floating point division by zero error when using VST plugins

•	Fixed Access violation problem with digilogue VST plugins

•	Fixed bug where the contraption preset display didnt update the first time a preset change was made with some VST plugins

•	Fixed zipper noise  in 10Harmonics when adjusting gain and harmonic amplitudes

•	Fixed slow phase and amplitude drifting in10Harmonics and TestGen

•	Fixed bug where if the slider in the VST plugin editor was moved with a VST plugin which had no parameters an error would occurr

•	Fixed bug where VST plugins with the same names as built-in AudioMulch contraptions could cause corrupted documents

4 / 2 / 2000

version 0.9b6

•	Fixed problem where contraptions in the patcher would sometimes jump to unpredictable locations after being moved with the mouse

•	Fixed bug which caused previously opened contraption editors to be displayed in unpredictable locations when they were closed and opened again

•	Fixed unavailability of Help references for SouthPole and PulseComb

•	Fixed bug which would cause AudioMulch to crash when using MIDI to control contraption presets

2 / 12 / 2000

version 0.9b5

•	Added the Ability to record parameter changes into the Automation section

•	Added Undo/Redo support for patcher operations

•	Added SouthPole contraption

•	Added PulseComb contraption

•	Fixed low gain problem in RissetFilters when high values of Q were used

•	Fixed a number of bugs that would cause Access Violation errors when the user attempted to automate integer-valued parameters such as LoopPlayer bar count (this functionality is currently disabled) or to load a document.

•	Fixed problems with editing text boxes in 10Harmonics and 5Combs when Audio is enabled

•	Fixed bug where 8-bit sound files would sound very distorted

•	Fixed bug where references to soundfiles loaded into Drums etc. would not be saved in the document correctly if the file name or patch contained an & character

•	Fixed bug where all knobs with logarithmic scaling (such as ParaEQ cutoff frequency and bandwidth) were displaying the wrong values in their tool tip.

•	Fixed bug where automation would be disabled when using the Export to Sound File function if a pre-roll other than zero was specified.

1 / 9 / 2000

version 0.9b4

•	Added the ability to accurately set the value of automation edit points by right clicking on them and choosing Set Value... from the popup menu

•	Fixed bug: MIDI parameter modulation was not functioning

•	Fixed bug: In unregistered versions of AudioMulch, opening a document from Windows Explorer or using command line options didnt work properly

•	Fixed bug: When a document is loaded the loop points are loaded correctly, but not displayed correctly

•	Fixed bug: Loading a document created with AudioMulch prior to version 0.9b3 which used VST plugins would cause AudioMulch to freeze.

•	Fixed bug: Sometimes when pressing play or play from start, the time displayed on the transport toolbar was incorrect.

•	Fixed bug: When loading old documents using VST plugins with . in their names AudioMulch reported that the plugin wasnt available even when it was.

•	Fixed bug: When copying and pasting a group of contraptions in the patcher the pasted copy contained no connections and wasnt selected properly.

•	Fixed bug: LoopPlayer clicked at the start and end of loop when Stretch was disabled..

15 / 8 / 2000

version 0.9b3

•	Changed document format to new XML based format

•	Modified contraption preset indicator to always display last recalled preset, if parameters have changed since the preset was recalled the preset indicator appears normally, otherwise it is displayed in a bold style

•	Added threshold and invert option to boolean parameter MIDI mappings

•	Added range mode (center-range, min-max etc.) to Range parameter MIDI mappings

•	Renumbered parameter names in Drums, 5Combs, 10Harmonics and all Mixers to be 1 based instead of 0 based (e.g. File_0 became File_1 etc). Now the names on the user interface match those in the automation section.

•	Renamed 5Combs.ReverbTime_* to 5Combs.DecayTime_*

•	Renamed Smixer.Gain_* to match display, eg Gain_2 becomes Gain_3-4

•	Improved MIDI sync (still not perfect)

•	Fixed bug in VST audioMasterPinConnected callback - AudioMulch now reports pin connections correctly, this may improve compatibility with some VST plugins

•	Now saves parameters in document for VST plugins that use binary chunk data.

•	Fixed a number of possible caused of crashes and freezes when loading documents with real-time audio enabled.

•	Fixed bug where CPU usage would increase while the contraption preset menu was displayed.

•	Added command line parameters for enabling MIDI controllers and MIDI clock sync when AudioMulch starts.

•	SoundIn playback may now be automated using the Active parameter.

•	Fixed problems with using SoundIn Sync punch mode in SoundOut.

2 / 5 / 2000

version 0.9b2

•	Added Automation looping

•	Added Scroll Automation with Playback option

•	Added the Views toolbar allowing quick switching between the Patcher, Properties, Automation and Notes views

•	Added new keyboard shortcuts including Space to stop and start the clock and Enter to stop the clock and return to the start of  the sequence

•	Updated the preset selection popup menus in Preset Automation Channels to indicate which presets are valid.

•	Fixed bug: Note names in 5Combs did not update after the frequency had been changed using the piano keyboard.

•	Fixed bug: VST Plugins menu could disappear off the screen if too many plugins were listed.

•	Fixed bug: Setting DigiGrunge Gain to 0 would sometimes cause AudioMulch to stop producing sound.

•	Fixed bug: An Access Violation would sometimes occur when loading a document if the previously loaded document contained automation.

•	Fixed bug: When a document that used MIDI mapping curves was loaded, an additional full range mapping would be prepended to each mapping curve resulting in corrupted mappings.

•	Fixed bug: Patch cords running backwards up the screen (ie from an outlet lower than the inlet they connected to) would select incorrectly, preventing other near by patch cords from being selected.

•	Fixed bug: Right clicking on the Gate 1 & 2 check box in drums to display the Configure Modulation popup menu would cause an Access Violation.

31 / 1 / 2000

version 0.9b1

•      Added automation interface

•	Added notes window ( View->Notes ) which displays notes for the current document

•	Fixed a rare bug which would cause the AudioMulch window to permanently disappear after being minimised.

•	Fixed display color of preset, help and close buttons on contraption property editor windows.

17 / 12 / 99

version 0.8b4

•	Interim version with new expiry date.

•	Fixed bug in 5Combs where the frequency was not being updated properly when selecting a note using the piano keyboard interface.

10 / 9 / 99

version 0.8b3

•	Added four new contraptions: RissetTones, RissetFilters, Nebuliser and Arpeggiator.

•	Moved beta contraptions from 0.8b2 into their appropriate categories ( Shaper and DigiGrunge to Effects, *Gain and Invert to Mixers. )

•	Added MIDI parameter modulation support to a number previously unsupported parameters ( Matrix4x4, Matrix8x8 matrix switches, LoopPlayer checkboxes, Bassline waveform and mute, Drums mute and channel enables, RingAM switch between RM and AM, TestGen sine/noise switch. )

•	Removed length limitation for loadable soundfiles in LoopPlayer and Drums, now any length file can be loaded. Be careful not to load huge files if you havent got a lot of RAM.

•	Revised the popup menu structure in the patcher. Now different popups appear whether you click on a contraption or empty space. The functionality hasn't changed significantly except that you can now open multiple contraption editors at once by shift selecting them and selecting Edit from the Patcher popup menu. The Delete menu item works now too.

•	When a contraption editor is opened it is tiled in the properties pane, rather than the previous method of having them all open on top of each other.

•	Moved level meters configuration to a dialog box. This can be accessed by right clicking on any of the level meters, or from the View -> Toolbars -> Configure Level Meters... menu item.

•	Increased parameter ranges in *Gain and *ParaEQ contraptions.

•	Added a new open soundfile dialog. When selecting soundfiles for LoopPlayer, Drums, SoundIn etc, there is an option to preview the sounds before loading them. Information about the selected soundfile is also displayed.

•	Added support for 8 bit soundfiles and sounfiles of any sample rate for all contraptions that use soundfiles except SoundOut.

•	Added the ability to specify a sync offset in milliseconds for MIDI clock sync. This allows compensation for delays in the soundcard or MIDI drivers. It also allows for compensation for latency when processing MIDI synced audio through AudioMulch.

•	Added "Mapping" tab to the Parameter Modulation dialog which includes: Upper and lower limits allowing MIDI controllers to be mapped on to a partial range of a parameter; A smoothing (slew limiting) parameter to limit the speed at which parameters are changed; and a non-linear mapping curve. Click on the mapping curve to add new points, drag points outside the curve editing pane to delete them.

•	Fixed a bug that would cause a crash whenever a Contraption with MIDI modulated parameters was deleted, or a document containing MIDI modulated parameters was unloaded and then more MIDI input arrived.

•	Fixed a bug that would cause audio to fail when a document containing feedback was loaded.

•	Fixed a number of bugs associated with MIDI clock sync, it should be more reliable now.

•	Fixed a bug that sometimes caused an error when using 'Export to Sound File...'

•	Fixed a number of bugs in BubbleBlower and LoopPlayer that resulted in intermittent crashes, sometimes when opening a second file, sometimes files weren't closed properly and became inaccessible to other programs.

•	Fixed ties bug in Bassline. Now a pattern with all ties will play forever instead of cutting out.

•	Fixed 8x8Matrix, now it works.

•	Fixed a bug that caused a crash when using the 'Set Value...' popup item on some of the knobs in the *ParaEQ contraptions.

•	Contraptions with no properties such as Busses are no longer listed in the Parameter Modulation dialog as having a Preset Number property.

•	It is no longer possible to accidentally cut and paste a second SoundOut contraption.

•	Fixed problems with restoring soundfile name parameters in presets with some contraptions (notably SoundIn). You can now store file references in presets and they will recall properly.

•	Fixed a bug in loop player that caused a small glitch at the end of each loop cycle, even when 'Stretch' was enabled. Loop player can now loop files perfectly, allowing it to be used for drone notes and other 'critical' looping tasks.

•	Fixed bug with numeric edit controls where dragging upwards to increment negative numbers was unreliable.

5 / 6 / 99

version 0.8b2

•	Added "Set Value..." item to parameter Knob and slider context menus allowing exact values to be typed in.

•	Fixed various problems with VST plugins: Plugins with custom 'bitmapped' user interfaces now display correctly, plugin settings are now saved with the document correctly, presets now work with VST plugins.

•	A warning is now displayed when loading documents that contain uninstalled plugins.

•	Bugs which would cause crashes when cutting and pasting contraptions, deleting contraptions, opening and closing documents, and quitting have been fixed.

•	Bugs related to the SoundIn contraption that would cause crashes or freezes when creating or deleting SoundIn, stopping audio while playing a file with SoundIn, and switching between real-time audio input and use input file have been fixed.

•	Fixed bug where the number of output buffers setting was always reset to 4 when AudioMulch was restarted.

•	Added "Enable MIDI Controllers" button to the toolbar.

•	Fixed problems with configuring MIDI mappings in the Parameter Modulation window.

•	MIDI mappings are now saved correctly with the document.

•	The Parameter Modulation dialog box now uses icons to indicate which Contraption parameters are modulated by MIDI.

•	Range type parameters (e.g. Flanger frequency range) can now be correctly modulated from MIDI control sources.

•	The DLGranulator Freeze parameter was disabled in the previous version. It is now enabled and may be switched on and off under MIDI control.

•	Fixed a bug that caused the Matrix contraption to use more CPU cycles than in previous versions.

•	Fixed bug where documents opened from Windows Explorer didn't display correctly.

•	Fixed bug where documents opened from Windows Explorer display with DOS file names in reload menu.

7 / 3 / 99

version 0.8b1

•	New and expanded help files

•	New Office 97 style dockable toolbars

•	Unified enable audio instead of separate audio in / audio out buttons and menu items

•	Support for up to 16 channels of real-time audio input and output

•	MIDI clock and song position pointer synchronisation

•	MIDI control of most contraption parameters

•	Support for VST plugins

•	Cut, copy and paste in the patcher

•	ToolTips displaying the current value of many knobs and sliders

•	Multiple patch cords can be connected to a single inlet

•	Moved Matrix contraptions to Mixers category

•	Moved BubbleBlower contraption to Signal Generators category

4 / 12 / 98

version 0.7b6

•	Drums and LoopPlayer now support soundfiles at sampling rates other than 44100 hz

•	Cells in the Drums and Bassline sequence editor can now be selected using the keyboard arrow keys and toggled on and off using the space bar

•	Added code to prevent the user interface freezing when the cpu load approaches 100%. This is enabled by unchecking the "overdrive" checkbox in the Settings->Audio Output dialog box.

•	Fixed bug that caused recalled presets to only update the user interface and not the signal processing

•	Added transpose button to Bassline

•	Added BubbleBlower and Matrix contraptions

11 / 10 / 1998

version 0.7b5

•	Added phaser effect

•	Altered behavior of range-sliders to allow thumbs to be moved independently without keyboard modifiers

•	Added cut/copy/paste to contraption presets

•	Cosmetic changes to contraption editor window

•	Added new numeric edit control

•	Overhauled Export to Sound File functionality to allow exporting arbitrary lengthed segments

•	Now supports non integer tempi

6 / 09 / 1998

version 0.7b4

•	Renamed I/O menu to "Control"

•	Added "Volume Control" to the View menu, this displays the windows volume control

•	Fixed 5Combs, now displays correct frequency and note numbers when its property editor is displayed

•	Re-coded real-time audio i/o code again to fix  glitching problems on slower machines

•	Added second input to SDelay

•	Fixed bug in Drums which was causing clicks on re-attacked samples

20 / 07 / 1998

version 0.7b3

•	Added audio input to Bassline to allow processing through Bassline's filter sequencer

•	Added master gain control to Additive10 and renamed it to 10Harmonics

•	Cleaned up Bassline inc. accent and sawtooth

•	Added an external modulator input to RingAM

•	Support for tempos down to 1 bpm

•	Fixed NT Audio i/o bugs

•	Re-coded real-time audio i/o code, now supports lower latencies and glitch free audio input

•	Adjusted mixer code so that moving the knobs doesn't generate zipper noise

•	Placed a limiter in the feedback loop of DLGranulator to prevent feedback blow-out problems

•	Implemented automatic feedback loop limiting, this prevents patches with feedback loops from crashing with exception 10H, it also sounds a lot better!

•	Fixed Find Tab in help file

•	Fixed Spat crashing bug

•	Fixed other miscellaneous nasty bits

•	Added Future.txt file to the distribution

23 / 04 / 1998

version 0.7b2

•	Audio input settings can now be updated in real-time

•	Basslines no longer intermittently crash program

•	"Mulching Contraptions Reference" section of the help file completed

•	Improved sound i/o logic that was causing "MMSystem004 device already in use" errors

•	Cleaned up (hopefully all) code that was causing "Invalid Floating Point Operation" errors

•	Made miscellaneous cosmetic interface changes

•	Improved filter code in ParaEQ, Flanger, SDelay etc.

•	Added SSpat stereo spatialiser contraption

•	"Save pattern to Sound file" can now overwrite existing files

•	WaveOut device volume is only reset to full if it was zero (previously it was reset every time).

•	Now keeps track of current directory independently for document, sound source and sound destination directories

•	Removed " is not a valid floating point value" error when entering values into numeric edit boxes

24 / 03 / 1998

version 0.7b1

•	First public release


Acknowledgements

Without the encouragement and assistance of a number of individuals AudioMulch would never have seen the light of day. I would like to thank the following people for their contribution to this project:

Steve Adam and Michael Hewes for their suggestions and encouragement during the initial phases of development, way back when AudioMulch was Ross Tools on the Macintosh.

Dean Walliss for endless object modeling discussions, most of the original Help file and the An Introduction to Automation section.

Andrew Bencina for authoring the current help file.

Neil Davies at 3Deep Technical and Matthew Proctor at Imagineering for managing our web presence.

Gordon Monroe for deriving the constant grain density algorithm used in the BubbleBlower.

Josep Comajuncosas for the filter implementation in SouthPole.

Esa Kotala for the amorphous crystaline artwork used in the splash screen and about box.

Simon Kidd for graphic design of the splash screen, about box and identity.

Thanks to the kind folks on the music-dsp mailing list for providing an open forum for music software development.

I would also like to acknowledge all of the courageous beta testers, whose submissions have made AudioMulch a more stable program: Adrian Bond, Akin Fernandez, Alberto di Bene, Angelo Farina, Antonio Russek, Arild Buanes, Benjamin Tucker, Brad Derrick, Brian Edwards, Brian Mulvey, Carl Gibbons, Carlos Fesser, Chris DeLaurenti, Chromozone , Dan Fain, Dana Woodaman, Daniel Gendreau, David Arthur, Dean Walliss, Ernesto Cedillo, Fraser Caldwell, Garth Wood, Gary Walker, Gareth Whittock, George Hagegeorge, Graeme Gerrard, Hakan "Zap" Andersson, Jake Almond, Jake Boswell, James Buecler, James Taste, Jesse Gay, Jerome Miller, Jimmy Lewis, Jiminy Lummox, Joel Stern, Jonathan Klizas, José Antonio Alvarez, Karl Foster, Kelly Allen, Matt Tracy, Matt Wand, Martin Fidibus, Mat Morgan, Michael John Trettewick, Michael Moncur, Mike Chapman, Mirjan Milovanovic, Mr Thinly Sliced, Nicolas Fournel, nic linfernel, nrshogia, Oliver Sparrow, Oshine Najarian, Paul, Peter Batchelor, Phil Burk, Philippe Caya, Paul Fravigar, Peter Remmers, Rainer Linz, RexBo, Reinhard Hoerl, Richard Burden, Robert Maroney, R. Wolf, S. , Sam Jorgensen, Semtex, Shawn Hatfield, Stephen Graham, Steve Chalberg, Steve Hamann, Steven Hugg, Stefan Reich, Tomas Jirku, Toni Van Remortel, tyler, Warren Burt, Gareth Whittock, Tim Robinson, Beatrice Jasper, Yasiu.

If I've missed anyone you know who you are  thank you.


About The Author

Ross Bencina is an electroacoustic composer, and a programmer. Ross works have been performed in the southern states of Australia and broadcast nationally. His music incorporates live improvisation with acoustic instruments combined with real-time audio signal processing and pre-recorded sound composition. He has published papers on computer music software development and human/computer performance aesthetics.

Ross currently resides in Melbourne, Victoria where he works as a freelance multimedia developer when not composing or hacking AudioMulch.


Selected Technical Biography

Below is a list of the books and articles that have been useful while writing AudioMulch. The list is not complete, notable exceptions include many miscellaneous articles in Computer Music Journal (MIT Press), Proceedings of the International Computer Music Conference (ICMC) and Doctor Dobbs Journal. The music-dsp mailing list has also been an indispensable resource, you can find out about the music-dsp mailing list at their web site: http://shoko.calarts.edu/~glmrboy/musicdsp/music-dsp.html

For a more musically oriented reading list, see Further Reading in the Tutorials section.

Computer Music

Moore, F.R. 1990. Elements of Computer Music, Prentice Hall, Englewood Cliffs, New Jersey.

Orfanidis, S. J. 1996. Introduction to Signal Processing, Prentice Hall, Upper Saddle River, New Jersey.

Puckette, M. 1988. The Patcher, Proceedings, ICMC. San Francisco: International Computer Music Association, pp. 420-429.

Roads, C. 1996. The Computer Music Tutorial, MIT Press, Massachusetts.

Truax, B. 1988. Real-Time Granular Synthesis with a Digital Signal Processor. Computer Music Journal 12(2): 14-26.

General Programming

Booch, G. 1995. Object-Oriented Analysis and Design, 2nd Ed. Benjamin/Cummings, Redwood City, California.

Martin, R. C. 1995. Designing Object-Oriented Applications Using the Booch Method, Prentice Hall, Englewood Cliffs, New Jersey.

Sedgewick, R. 1992. Algorithms in C++, Addison-Wesley, Reading, Massachusetts.

Stroustrup, B. 1991. The C++ Programming Language, 2nd Ed. Addison-Wesley, Reading, Massachusetts.

Szyperski, C. 1998. Component Software  Beyond Object-Oriented Programming, Addison-Wesley Longman Ltd., Edinburgh Gate, Essex.

Source Code

Listed below are some freely distributed sources of musical signal processing code. Although I have not used this source code in AudioMulch, I learnt most of what I know about implementing audio signal processing algorithms from studying this code.

Csound software sound compiler

http://www.leeds.ac.uk/music/Man/c_front.html

Princeton CMIX sound processing toolkit

NeXT / CCRMA Music Kit

http://www-ccrma.stanford.edu/CCRMA/Software/MusicKit/MusicKit.html


S*mixer

Category: Mixers

Inputs: 1 (left), 2 (right), 3 (left), 4 (right), . . .

Outputs: left, right

S*Mixers (where * indicates the number of stereo input pairs), are stereo mixers with a master gain control (Master) and individual gain controls for each stereo input pair (1&2, 3&4, etc.). Mono signals applied to either input of a stereo pair are automatically bridged to the other input of that pair.


Navigating the User Interface

AudioMulch opens with a single window split into three panes.

The Patcher and Properties Panes

The pane on the left (marked 1 on the screen shot above) is the Patcher Pane.  All of the structural work within AudioMulch takes place within this pane. You add and connect Mulching Contraptions together in this pane and also use this area to make any alterations to the layout or sequence of contraptions once a mulching session is underway. Every change within this pane will generally have a marked effect on any patch. As a result it is the first pane within AudioMulch to feature an enabled Undo function.

The pane on the right (marked 2 on the screen shot above) is the Properties Pane.  Most Mulching Contraptions in the Patcher Pane also have a corresponding Property Editor in the Properties pane (Note: both busses and AuxIn/Outs do not have their own property editors as they do not have properties to edit).

The Property Editor for a Mulching Contraption can be made visible by double clicking on the Mulching Contraption.  To make the Property Editor invisible, click on the close box of the particular Property Editor in the Patcher.

The lower pane (marked 3 on the screen shot above) is the Automation Pane. Almost all Contraption Parameters also have a corresponding automation channel that can be viewed. This channel can be viewed (in the Automation Pane) by right-clicking on the desired contraption parameter in the Property Pane and selecting Automate. Alternately, it is possible to activate and de-activate automation channels from the Control, Parameter Modulation menu item (F3). Select the parameter of the contraption you wish to automate from the list of all contraptions in the Patcher Pane and check or uncheck the Automate box. For further information on Automation consult the An Introduction to Automation section of this Help file.

Views

The size of each pane is variable and it is possible to quickly open and close each of the three using the Views Toolbar or the respective keyboard shortcuts (Patcher:F5, Properties:F6, Automation:F7).

In addition to these three editing panes there is also a pop-up Notes window and the Document Switcher window.

The Notes window is very simply a user's notepad that allows specific details relating to a particular mulch file to be recorded and stored with that file. The Notes window can be viewed (and hidden) by clicking on the Notes icon [image] in the Views Toolbar or checking/un-checking the View, Notes menu item (F8).

The Document Switcher window provides a convenient way to switch between a list of .amh documents, either using the mouse or under MIDI control. Like the Notes window, the Document Switcher window can be viewed (and hidden) by clicking on the Document Switcher icon [image] in the Views Toolbar or checking/un-checking the View, Document Switcher menu item (F9).

For a more detailed explanation of how to use the Document Switcher please refer to the Guide to the Document Switcher Window section of this Help file.

Mulching Contraptions

To add Mulching Contraptions to the Patcher pane, you use the context menu.  Right-click in the patcher pane to reveal the context menu.

When you select a Mulching Contraption from the context menu it subsequently appears within the patcher pane.

The Mulching Contraptions fall broadly into eight categories that are reflected in the context menu in the Patcher pane:

•	Input/Output contains contraptions that control sound output and sound input.

•	SignalGenerators are contraptions that generate sounds that can be further processed by other contraptions.

•	Effects are contraptions that process the audio signals from other contraptions.

•	Filters fulfil a similar role to effects in that they process signals from other contraptions.

•	Busses are contraptions that allow multiple input signals to be sent to a single output or a stereo pair.

•	Mixers are similar to busses except that they feature individual volume controls for each input pair.

•	Beta contains new and developmental contraptions that, as a result, may not be completely bug free. The Beta section features a range of contraptions that would otherwise be placed in one of the above categories.

•	VST Plugins contains external modules compatible with the Virtual Studio Technology features of certain other sound processing and sequencing software alternatives. VST and VST2 plugins can be downloaded from a variety of locations on the Internet. A few relevant VST links are provided on the AudioMulch web site. All VST and VST2-compatible modules, once plugged-in, will appear within this category of the context menu.

Inputs and Outputs

To hear any sound, it is essential to have a SoundOut contraption in the Patcher pane.  This contraption represents the audio output of Audio Mulch.  All other contraptions must directly or indirectly connect to the SoundOut to be heard.

SignalGenerator contraptions have outputs that appear on the bottom of the contraption.  These contraptions generate sound but don't process sounds from other sources and consequently, they don't have inputs.

Effects, Filters, Busses and Mixers have inputs on the top of the contraption and outputs on the bottom.

Mulching Contraptions are connected together by dragging a patch cord from the output of one contraption to an input of another.

Multiple lines may be taken from any output and joined to any input. When multiple cords are joined to an input the signals are automatically mixed.  In more complex patches, busses or mixers can be used to combine multiple outputs into a single input.

By clicking the left mouse button and dragging the arrow around a selection of contraptions within the patcher pane an entire patch can be selected or grouped. This grouping can then be shifted around the Patcher pane by grabbing any part of the grouped patch with the left mouse button and dragging. Right clicking on a contraption or a grouping of contraptions within the patcher pane brings up a contraption/selection specific context menu similar to the Edit menu item. From this menu it is possible to quickly perform those functions otherwise found in the Edit menu bar or achieved by other means.

Selecting Edit has the same effect as double left-clicking on a contraption and brings up a contraption's corresponding Property editor within the Property pane. The Help item mirrors the ? icon found on each contraption's property editor and facilitates quick access to the section of the Help file relating to that contraption. The Cut, Copy, and Delete items all mirror those found in the Edit menu bar. Importantly, the Cut & Copy functions allow the duplication of contraptions and patches with all their settings intact. This can be paticularly useful if you want to recreate an effect from one AudioMulch file within another.

Real-time Audio and Transport Control

In order to make any sound with AudioMulch, real-time audio must be active. Real-time Audio is controlled by the Enable Audio menu item in the Control menu, or toggled with the speaker button [image] on the toolbar. To process real-time audio input the Use Input File option of the SoundIn contraption must be disabled.

Some contraptions are clock based (drum machine and bassline for example), and require that the clock be started as well.  The clock can be started and stopped from the Control menu, the play (arrow) [image] and stop [image] icons on the toolbar and with the Space Bar. Tempo is also controlled from the toolbar.  If you start the clock, real-time audio will be enabled automatically and the enable audio button will reflect this. The clock can be reset to zero using the reverse arrow or the Enter key. Alternately, you can restart the clock from zero using the Play from start [image] icon located on the toolbar.

The record [image] and loop [image] buttons located on the Transport toolbar control functions of AudioMulch's internal system of Automation. The record button [image] enables Automation record and can be toggled using a left mouse click or with the R key. Importantly Automation recording is only possible when individual Automation parameter channels have been configured to record.

The loop button [image] enables the Looping of a section of Automation defined by the Loop point markers on the upper edge of the Automation ruler. For further information on these and other Automation functions please consult the An Introduction to Automation section of this help file.

Many of AudioMulch's parameters can be modulated using an external MIDI hardware or software controller. This function must first be enabled using the Enable MIDI Controllers item of the Control menu or the Enable MIDI Controllers icon [image] on the Transport toolbar. For further information regarding the configuration of AudioMulch for the use of external controllers please consult the Controlling AudioMulch Parameters from MIDI section of this help file.

Configure Level Meters

In addition to the standard, transport and views toolbars referred to above you can also choose to view both an Input and Output level meter. These may be hidden or displayed by checking or unchecking the respective View, Toolbars, Input Meters/Output Meters menu item.

Multichannel soundcard users also have the option of viewing a level meter for each individual input or output. These can be selected using the Configure Level Meters dialog box that can be accessed from either the View, Toolbars, Configure Level Meters... menu item or by right-clicking on the existing level meters and selecting Configure Level Meters. To view a level meter for a particular SoundIn, AuxIn, SoundOut, and AuxOut you need only click the appropriate checkbox within the Configure Level Meters dialog box.

(Note: this feature is only of particular relevance to users running multichannel soundcards and creating multichannel mulch patches.)

As is the case with all AudioMulch toolbars, once selected any of these level meters can be moved around the screen to accommodate your needs by simply clicking and dragging them with your mouse.


PulseComb

Category: Effects

Inputs: mono

Outputs: mono

PulseComb is an amplitude modulated comb filter implementing a type of Pulsar synthesis. PulseComb can be thought of as a delay line where each repeat of the delay has its own envelope  the envelope may be curved (like a cosine bell) or rectangular  the envelope may also be varied in duration with the maximum duration being the delay repeat rate. The delay line has feedback, and each repeat of the delay may also be transposed. It is possible to set a hold time so that not every repeat of the delay receives a fresh input signal  this can create stuttering or infrequently changing drone effects.

Parameters

Frequency

The Frequency parameter controls the frequency of the comb filter, which can also be thought of as the frequency of a generated pulse train.

Frequency Quantize Division and Frequency Quantize Multiplier

The frequency may be quantized according to a subdivision of the clock, which may by further multiplied by the quantize multiplier.

Duty Cycle

The envelope Duty Cycle parameter controls the duration of the pulse envelope relative to the period of repetition (1. / Frequency). Lower values of Duty Cycle create relatively short pulses, higher values allow more of the source signal through.

Smoothing

The envelope smoothing parameter determines the duration of the attack and decay portions of the pulse envelope. Higher values of smoothing create a curved bell-like envelope, lower values tend towards a rectangle. Very low values of smoothing will cause audible clicks at the boundaries of each pulse repetition.

Transpose

Each pulse repetition may be transposed according the value specified by the transpose parameter. Non-zero values of Transpose sound good when combined with a non-zero Decay Time parameter

Decay Time

Decay Time determines the decay time of the comb filter.

Hold Period

PulseComb has the ability to not update the delay line each time it recycles, this is referred to as holding. The Hold Period determines the rate at which the delay line is updated from the input source. Very low values have the effect of updating the delay line every cycle, whereas high values of Hold Period create repeated stutterings which only update once per Hold Period.

Hold Period Quantize Division and Hold Period Quantize Multiplier

The hold period may be quantized according to a subdivision of the clock, which may by further multiplied by the quantize multiplier.


SouthPole

Category: Beta

Inputs: Main-mono (left) & Sidechain-mono (right)

Outputs: mono

SouthPole is a 4-pole low-pass resonant filter with the ability to modulate the filter cutoff frequency, resonance and gain with a collection of envelope followers, envelope generators and LFOs (low frequency oscillators).

The filter Cutoff, filter Resonance and output Gain are controlled by the modulation mixer (the 3 by 8 matrix of knobs in the bottom section of the SouthPole properties editor. The Base (first) column of the modulation mixer determines the base values for each of cutoff, resonance and gain. The subsequent columns control the amount that each modulation source contributes to each parameter. Modulation sources may add or subtract from the base value according to the settings of the various modulation amount knobs.

Each input (main and side-chain) has an envelope follower which may be used as a modulation source via the In Fol.  and S.C. Fol. columns on the modulation mixer. Each envelope follower has a Smoothing parameter which controls how rapidly the envelope follower tracks the input signal.

Three envelope generators are provided. The A, D, S and R knobs control the attack, decay, sustain and release of the envelope respectively. The Gate Duration parameter determines the time between the beginning of the attack until the onset of the release portion of the envelope. Each envelope may be triggered in a number of ways as selected by its Trigger Source property: by its own trigger pattern (Pattern); from triggers generated from the main audio input (Input Trigger); the side-chain input (Side Chain Trigger); or by combining the pattern with the external triggers such that the pattern only triggers when an external trigger is also detected (Pattern * Input Trigger and Pattern * Side Chain Trigger).

Both the Input Trigger and the Side Chain Trigger may be used to trigger any of the three envelopes according to the envelopes respective Trigger Source parameters as described above. Each trigger has two parameters Threshold and Delay. The Threshold parameter determines the lowest input level that will cause a trigger to be generated. The Delay property determines the time that the trigger generator waits after generating a trigger before generating another trigger  this may be useful with some types of input to prevent multiple triggering.

Two LFOs (low frequency oscillators) are provided. Each has a variety of waveforms, which may cycle synchronously to the clock tempo by setting their Mode to Clock Synchronous and using the Synchronous Period and Synchronous Phase (both measured in semiquavers) to adjust the rate and phase of the LFO cycling. Alternatively, if Mode is set to Asynchronous the LFO rate is governed by the Async Rate knob which allows specification of the LFO frequency in Hz.


Editing an Automation sequence

Automation time splicing behaves in a similar fashion to the way text may be edited in a word processor, or the way soundfiles are edited in a soundfile editor. You can set an insertion point or select a range of time and apply familiar operations such as Cut, Copy, Paste and Delete and also use the Insert Time command to insert a specified amount of time. All of these operations are available from the Edit menu. The Automation view indicates the current selection as follows: An insertion point is indicated by a flashing vertical bar in the channels to which it applies. A selection range appears as a highlighted background in the applicable channels.

Creating a Selection

The insertion point or selected time range can apply to any combination of automation channels. To select a range of time spanning all channels, click and drag in the center region of the automation ruler (the cursor will change to an I-beam to indicate that the mouse is in the time selection area.) To set the insertion point across all channels click and release the mouse in the time selection area of the automation ruler. A selection range or insertion point can be made for an individual automation channel by clicking and dragging in empty space within the channel (the cursor changes to an I-beam to indicate the appropriate area from which to perform the selection.) A selection spanning multiple channels may be created in similar fashion by beginning a selection on one channel and dragging the mouse across other channels to include them in the selection.

Modifying an Exisiting Selection

Once the insertion point has been set, or a range of time has been selected it is possible to modify the selection by holding down the Shift and/or Control keys on the keyboard while clicking or dragging with the mouse.

The selected time range can be modified by holding down the Shift key and clicking and dragging in the ruler, or in any channel which is currently part of the selection. By shift-clicking before the beginning of the current selection range (or insertion point,) the beginning of the selection can be modified. By shift-clicking after the end of the current selection range the end of the selection can be modified.

Shift-clicking can also be used to extend the selection across currently unselected channels. By shift-clicking in an unselected channel, the channel and all channels between it and the current selection become part of the selection. Shift-clicking always modifies the start or end location of the selection, for this reason, using the Control key (see below) may be more useful for altering which channels are included in the selection.

It is possible to add or remove channels from an existing selection or insertion point by clicking while holding down the Control key on the keyboard. Control-clicking a channel within the selected time range will toggle the channel between being a member and not being a member of the selection (or insertion point.) A Control-click and drag across multiple channels will include or preclude them from the selection.

Insert Time

When the insertion point is set for one or more channels the Insert Time command from the edit menu allows a specifiable period of time to be inserted into the selected channels.

Copy, Cut and Clear

The Copy, Cut and Clear items in the Edit menu can be used to place the automation selection on the clipboard (Copy and Cut) and to delete the selected range of time in the selected channels (Cut and Clear.)

Paste

The Paste command from the Edit menu can be used to insert the contents of the clipboard into the automation selection. When an insertion point is selected the Paste command will insert the range of time in the clipboard into the automation view and push all following automation forward in time. When a range of time is selected in the Automation view, Pasting will replace the selected time range with the time range on the Clipboard.

The Paste command behaves slightly differently depending on whether the Clipboard holds a clipping from only one automation channel, or if it holds clippings from multiple channels.

When the Clipboard contains only a single channel, a Paste operation may be performed on any compatible channel. Channels are considered compatible if they are of the same type (ie Preset, Boolean, Value or Range) and in the case of Value and Range channels the allowable value range must also match. Note that to use this Paste mode, the insertion point must not include multiple channels.

When the Clipboard contains more than one channel of automation information, data is always pasted into the same channel from which it was cut or copied. Irrespective of the number of channels on the Clipboard, a Paste operation only ever applies to the channels that are part of the selected range or insertion point  channels on the clipboard which are not selected are not pasted. When the selection spans multiple channels, and some of those channels are not present on the clipboard the Paste command will insert blank time into the channels not present on the clipboard.


Synchronising AudioMulch to an external MIDI sequencer

Using MIDI Sync

To use MIDI sync you need to have a sequencer capable of providing MIDI clock and song position pointer information to AudioMulch via a MIDI input device. To begin go to the MIDI & Sync tab of the Settings dialog box (Edit->Settings) and select the desired MIDI Sync Device. Next open a document that contains clock-based contraptions (Bassline, Drums, etc.). Enable external sync by choosing Chase Sync from the Control menu. Enable real-time audio by clicking the speaker button [image]. Now when you start and stop the external sequencer AudioMulch will start its own clock and synchronise with the external source, it should also track tempo changes.

AudioMulch will take a small time to lock synchronisation, for this reason it is advisable to send a 1 bar count-in to ensure clean sync.

Note: It is possible to select the same device for MIDI sync and MIDI parameter control.


Controlling AudioMulch Parameters from MIDI

Using MIDI Parameter Control

Most contraption parameters can be controlled from a MIDI control source such as a MIDI sequencer, fader box, or other software capable of outputting MIDI controller messages. To begin go to the MIDI & Sync tab of the Settings dialog box (Edit->Settings...) and select the desired MIDI Controllers Device. Load a document, start the audio and enable midi controllers using the Enable MIDI Controllers item in the Control menu or the Enable MIDI Controllers Icon on the Transport Toolbar.

There are two ways to map a MIDI controller to a contraption parameter Quick Mapping, and by using the Parameter Modulation dialog.

The Parameter Modulation Dialog

The Parameter Modulation dialog can be accessed by selecting Parameter Modulation… from the Control menu or using F3. On the left of the dialog a tree displays all of the contraptions in the current document. By expanding a node (click on a + or double click a contraption in the tree) all of the controllable parameters for that contraption are displayed. When a parameter is selected in the tree (by clicking on it) modulation information for that parameter is displayed on the right. You can select a MIDI controller type, number and channel. If MIDI controllers are enabled from the Control menu, you can click the Capture Next MIDI Controller button [image] and the next controller received will be entered as the control source  this could be used to quickly select a knob on a control surface by simply moving it.

The parameters list displays Icons showing a small midi lead for all parameters that have a MIDI modulation source assigned to them.

You can also display the Parameter Modulation Dialog by right clicking on any knob, slider or other parameter control in a contraption property editor and select Parameter Modulation… from the popup menu. This will display the Parameter Modulation Dialog with the parameter you just clicked on selected and ready for mapping. By right clicking on an empty space within any contraption editor the Parameter Modulation Dialog can be viewed with all of that contraption's parameters displayed.

The Parameter Modulation Dialog box is most useful when a number of parameters need to be mapped at once.

Using Quick Mapping

Right clicking on any knob, slider or other control in a contraption property editor and selecting Quick-map MIDI Controller… displays a simplified version of the Parameter Modulation Dialog allowing a midi control source to be set for the control just clicked. If MIDI Controllers are enabled (from the Control menu) the Quick-map dialog will be waiting for an incoming MIDI control message. By moving your MIDI controller, a knob on a knob-box for example, the chosen parameter is mapped to that MIDI knob and the Quick-map dialog will close automatically. When performing this allows for rapid assignment of controllers to parameters. The Quick Mapping Dialog does not however, provide access to the more detailed controls of the Mapping settings.


Mulching with Sound Files

AudioMulch currently supports:

•	WAV and AIFF files

•	sound files of varying bit and sample rates (including 24bit and Floating Point files)

AudioMulch does not support:

•	MP3's

•	sound files created using ADPCM compression

NOTE: AudioMulch currently runs at a fixed sample rate of 44.1k. As a result any files created at any other sample rate will be converted within AudioMulch on loading. At present AudioMulch's in built sample rate conversion is optimised for real-time performance rather than quality. It may therefore cause some audio degradation of non-44.1k files and will certainly increase the CPU load on your machine. For optimal audio quality and processing efficiency it is recommended that all sound files be converted to 44.1k, using a file editor like CoolEdit or WaveLab, prior to use within AudioMulch.

At this point in time you can only export or record sound files at 44.1k.

Automatic Sound File Location
The Automatic Sound File Location feature is designed so that AudioMulch can automatically locate sound files in the following common scenarios:

•	an .amh document is moved, but the sound files it references are left in their original location

•	a folder heirarchy including sound files and .amh documents is renamed or moved to a new location

•	a new version of AudioMulch is installed, and sound files are moved from the old to the new versions's Samples directory

For documents saved using any version of AudioMulch beyond 0.9b11, the auto-locate feature searches for sound files in the order listed below. The first location in which a sound file is found is used.

1.	If the sound file was stored in a folder which shared a common ancestor to the saved document, and the document has moved, then AudioMulch calculates the sound file's path relative to the old document location and uses this relative path to look for the sound file relative to the document's current location.

2.	If the sound file was stored in a folder which shared a common ancestor to the AudioMulch application folder when the document was saved, and the application folder has moved, then AudioMulch calculates the soundfile's path relative to the old application folder and uses this relative path to look for the sound file relative to the application folder's current location.

3.	AudioMulch looks for the sound file in the original absolute location stored in the document.

In general, the best ways to ensure that AudioMulch never loses track of a sound file's location are either to always keep your sound files in a fixed location, or to always keep sound files used by a particular document in the same folder, or a sub-folder of the folder that the document is saved in, and to move both the document and the folder(s) containing the sound files together. The Save a Copy... item of the File menu provides an option to save the .amh document along with a copy of all the sound files which it uses. This is a convenient way to store all the referenced sound files in one place before relocating the document and sound files to another computer.

Manually Locating Missing Sound Files
After AudioMulch has tried to locate all sound files referenced within the document using the automatic location system described above, it will display a message asking whether you wish to manually locate any sound files that it can't locate automatically. When you manually locate a missing sound file, AudioMulch uses the new location of the file to try to locate other missing sound files that were stored in the same folder or a folder relative to the folder the previously found file was stored in. This means that if all of your sound files were stored in one location, and you moved them all together to a different location, you will only need to manually locate one missing file in order for AudioMulch to automatically find the rest.

AudioMulch will only ask you to locate sound files which it cannot find automatically. The process of locating a missing sound file will never cause AudioMulch to consider a file which it has already located to become missing. If you choose to Skip, or Skip All, the missing sound files that have been skipped will remain missing - you will be asked to locate them again the next time the document is opened.


FilePlayer

Category: Signal Generators

Inputs: none

Outputs: left, right

The FilePlayer contraption provides an additional source for incoming sounds within AudioMulch. In particular it lends itself to real-time processing of extended pre-recorded sound segments, in the form of wave or aiff files. Input is controlled using the Play/ Stop button on the FilePlayer properties editor.

The remaining controls for FilePlayer are described below;

File

The File panel indicates the source sound file for FilePlayer. Files may be selected by clicking on the open button in the file panel.  For information on supported file types and file related configuration please consult the Mulching with Sound Files section of this Help file.

File position Trackbar

The file position trackbar can be used to select the current playback position from the input file. It can be used while a file is playing or when a file is paused.

Auto Rewind

When checked, Auto Rewind causes the input file to be rewound to the beginning each time it is played.

Loop

When checked, Loop causes the input file to be played continuously, beginning from the start when the end has been reached.

Delay

When Loop is enabled, Delay controls the length of silence inserted between the end and the start of the input file as it is looped.

Play/Stop Button

The Play / Stop button starts and stops playback of the input file.


FrossCader

Category: Mixers

Inputs: left, right

Outputs: 1 (left), 2 (right), 3 (left), 4 (right)

FrossCader is a routing contraption designed to allow the fading of a stereo input source between two separate signal paths.

Mono signals applied to either input are automatically bridged to create a stereo input pair. As well as the Crossfade slider, master gain (Master), and individual trim knobs (1&2 and 3&4) for each stereo output pair are provided.


Guide to the Document Switcher Window

The Document Switcher is a floating window that provides a convenient way to switch between a list of documents, either using the mouse, or under MIDI control. You can toggle the visibility of the Document Switcher using the Document Switcher menu item in the View menu, the toolbar button [image], or by pressing F9.

Document Sets

The Document Switcher works with a Document Set (.ams file) which is a file containing a list of .amh documents. The first four buttons on the Document Switcher toolbar [image] provide New/Open/Save/SaveAs functionality for managing Document Sets. Note that the Document Set simply stores the file paths where the .amh documents are located, it doesn't actually contain the document data.

Documents Grid

The Documents Grid is the main display area of the Document Switcher, it contains slots for up to 128 documents. The document to be listed in a particulat slot can be selected using each slot's Select Document button [image]. You can also drag and drop AudioMulch documents from Window's Explorer onto the Documents Grid. A slot can be "selected" by clicking on it, in which case it will be highlighted by a dotted line.

The Insert Current Document button [image] located in the Document Switcher toolbar can be used to insert AudioMulch's currently loaded document into the selected slot. A slot can be cleared by clicking the individual slot's Clear Document button [image]. The Clear All button [image] in the Document Switcher's toolbar can be used to clear all slots.

Documents can be moved between slots by dragging and dropping. Usually dragging a document into an occupied slot causes the other documents to shuffle up or down. Holding down the Alt key will cause the destination slot to be overwritten rather than shuffled. Holding down the Ctrl key will cause the source document reference to be duplicated instead of moved.

When a document listed in a slot is double-clicked it will be loaded into AudioMulch. The currently loaded document in the Documents Grid (if any) will be highlighted with a tinted background colour. If a document cannot be found its icon will be displayed with a yellow exclamation mark in the Documents Grid.

MIDI Control

It is possible to configure the Document Switcher to load documents under MIDI control. The Document Switcher Settings button [image] displays a dialog where you can select; the MIDI control source that will be used to switch documents, and also how AudioMulch should save changes to the current document (if it has changed) before loading the new document (this setting allows documents to be switched via MIDI without any other interaction with the user interface). The Document Switcher Settings are stored for the AudioMulch application as a whole and are not specific to the currently loaded Document Set.

The right-most button on the Document Switcher toolbar [image] enables MIDI controlled document switching. Note that both Audio and MIDI control must be enabled in the main AudioMulch window for MIDI controlled document switching to operate.

Command Line Parameters.

While you can open a Document Set by double-clicking on it from Window's Explorer, it is also possible to pass the Document Set's file name to mulch.exe from the comand line. A new command line argument "/s" has been added to enable MIDI document switching. These new capabilities may be used to extend the strategy described here: http://www.audiomulch.com/mulchnotes/mulchnote_1.htm to set up a turnkey installation that can also switch between documents under MIDI control.